Initial commit with kopia app working

This commit is contained in:
cody conder
2025-11-08 00:18:25 -06:00
commit 801174585b
34 changed files with 1380 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
{
"name": "Minio",
"available": true,
"exposable": true,
"dynamic_config": true,
"port": 8001,
"id": "minio",
"description": "MinIO is a high-performance, S3 compatible object store. It is built for large scale AI/ML, data lake and database workloads.",
"tipi_version": 5,
"version": "RELEASE.2025-02-07T23-21-09Z",
"categories": ["development"],
"short_desc": "High Performance Object Storage.",
"author": "MinIO, Inc",
"source": "https://github.com/minio/minio",
"website": "https://min.io",
"form_fields": [
{
"type": "text",
"label": "Minio root username",
"required": true,
"env_variable": "MINIO_ROOT_USER"
},
{
"type": "password",
"label": "Minio root password",
"required": true,
"min": 8,
"env_variable": "MINIO_ROOT_PASSWORD"
},
{
"type": "text",
"label": "Minio S3 API URL (when exposed)",
"placeholder": "s3.example.com",
"required": false,
"env_variable": "MINIO_API_URL"
}
],
"supported_architectures": ["arm64", "amd64"],
"created_at": 1691943801422,
"updated_at": 1742038537982,
"$schema": "../app-info-schema.json",
"force_pull": false
}

View File

@@ -0,0 +1,50 @@
{
"$schema": "https://schemas.runtipi.io/dynamic-compose.json",
"services": [
{
"name": "minio",
"image": "minio/minio:RELEASE.2025-02-07T23-21-09Z",
"isMain": true,
"internalPort": 9001,
"addPorts": [
{
"hostPort": 8000,
"containerPort": 9000
}
],
"environment": {
"MINIO_ROOT_USER": "${MINIO_ROOT_USER}",
"MINIO_ROOT_PASSWORD": "${MINIO_ROOT_PASSWORD}",
"MINIO_BROWSER_REDIRECT_URL": "${APP_PROTOCOL:-http}://${APP_DOMAIN}",
"MINIO_DOMAIN": "${APP_DOMAIN}"
},
"volumes": [
{
"hostPath": "${APP_DATA_DIR}/data/minio/data",
"containerPath": "/data"
}
],
"command": "server --console-address :9001 /data",
"extraLabels": {
"traefik.http.middlewares.{{RUNTIPI_APP_ID}}-api-web-redirect.redirectscheme.scheme": "https",
"traefik.http.services.{{RUNTIPI_APP_ID}}-api.loadbalancer.server.port": "9000",
"traefik.http.routers.{{RUNTIPI_APP_ID}}-api-insecure.rule": "Host(`${MINIO_API_URL}`)",
"traefik.http.routers.{{RUNTIPI_APP_ID}}-api-insecure.entrypoints": "web",
"traefik.http.routers.{{RUNTIPI_APP_ID}}-api-insecure.service": "{{RUNTIPI_APP_ID}}-api",
"traefik.http.routers.{{RUNTIPI_APP_ID}}-api-insecure.middlewares": "{{RUNTIPI_APP_ID}}-api-web-redirect",
"traefik.http.routers.{{RUNTIPI_APP_ID}}-api.rule": "Host(`${MINIO_API_URL}`)",
"traefik.http.routers.{{RUNTIPI_APP_ID}}-api.entrypoints": "websecure",
"traefik.http.routers.{{RUNTIPI_APP_ID}}-api.service": "{{RUNTIPI_APP_ID}}-api",
"traefik.http.routers.{{RUNTIPI_APP_ID}}-api.tls.certresolver": "myresolver",
"traefik.http.routers.{{RUNTIPI_APP_ID}}-api-local-insecure.rule": "Host(`{{RUNTIPI_APP_ID}}-api.${LOCAL_DOMAIN}`)",
"traefik.http.routers.{{RUNTIPI_APP_ID}}-api-local-insecure.entrypoints": "web",
"traefik.http.routers.{{RUNTIPI_APP_ID}}-api-local-insecure.service": "{{RUNTIPI_APP_ID}}-api",
"traefik.http.routers.{{RUNTIPI_APP_ID}}-api-local-insecure.middlewares": "{{RUNTIPI_APP_ID}}-api-web-redirect",
"traefik.http.routers.{{RUNTIPI_APP_ID}}-api-local.rule": "Host(`{{RUNTIPI_APP_ID}}-api.${LOCAL_DOMAIN}`)",
"traefik.http.routers.{{RUNTIPI_APP_ID}}-api-local.entrypoints": "websecure",
"traefik.http.routers.{{RUNTIPI_APP_ID}}-api-local.service": "{{RUNTIPI_APP_ID}}-api",
"traefik.http.routers.{{RUNTIPI_APP_ID}}-api-local.tls": "true"
}
}
]
}

View File

@@ -0,0 +1,69 @@
services:
minio:
container_name: minio
image: minio/minio:RELEASE.2025-02-07T23-21-09Z
restart: unless-stopped
environment:
- MINIO_ROOT_USER=${MINIO_ROOT_USER}
- MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD}
- MINIO_BROWSER_REDIRECT_URL=${APP_PROTOCOL:-http}://${APP_DOMAIN}
- MINIO_DOMAIN=${APP_DOMAIN}
ports:
- 8000:9000
- ${APP_PORT}:9001
volumes:
- ${APP_DATA_DIR}/data/minio/data:/data
networks:
- tipi_main_network
command: "server --console-address :9001 /data"
labels:
# Main
traefik.enable: true
# Console
traefik.http.middlewares.minio-console-web-redirect.redirectscheme.scheme: https
traefik.http.services.minio-console.loadbalancer.server.port: 9001
# API
traefik.http.middlewares.minio-api-web-redirect.redirectscheme.scheme: https
traefik.http.services.minio-api.loadbalancer.server.port: 9000
# Web - Console
traefik.http.routers.minio-console-insecure.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.minio-console-insecure.entrypoints: web
traefik.http.routers.minio-console-insecure.service: minio-console
traefik.http.routers.minio-console-insecure.middlewares: minio-console-web-redirect
# Web - API
traefik.http.routers.minio-api-insecure.rule: Host(`${MINIO_API_URL}`)
traefik.http.routers.minio-api-insecure.entrypoints: web
traefik.http.routers.minio-api-insecure.service: minio-api
traefik.http.routers.minio-api-insecure.middlewares: minio-api-web-redirect
# Websecure - Console
traefik.http.routers.minio-console.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.minio-console.entrypoints: websecure
traefik.http.routers.minio-console.service: minio-console
traefik.http.routers.minio-console.tls.certresolver: myresolver
# Websecure - API
traefik.http.routers.minio-api.rule: Host(`${MINIO_API_URL}`)
traefik.http.routers.minio-api.entrypoints: websecure
traefik.http.routers.minio-api.service: minio-api
traefik.http.routers.minio-api.tls.certresolver: myresolver
# Local domain - Console
traefik.http.routers.minio-console-local-insecure.rule: Host(`minio.${LOCAL_DOMAIN}`)
traefik.http.routers.minio-console-local-insecure.entrypoints: web
traefik.http.routers.minio-console-local-insecure.service: minio-console
traefik.http.routers.minio-console-local-insecure.middlewares: minio-console-web-redirect
# Local domain - API
traefik.http.routers.minio-api-local-insecure.rule: Host(`minio-api.${LOCAL_DOMAIN}`)
traefik.http.routers.minio-api-local-insecure.entrypoints: web
traefik.http.routers.minio-api-local-insecure.service: minio-api
traefik.http.routers.minio-api-local-insecure.middlewares: minio-api-web-redirect
# Local domain secure - Console
traefik.http.routers.minio-console-local.rule: Host(`minio.${LOCAL_DOMAIN}`)
traefik.http.routers.minio-console-local.entrypoints: websecure
traefik.http.routers.minio-console-local.service: minio-console
traefik.http.routers.minio-console-local.tls: true
# Local domain secure - API
traefik.http.routers.minio-api-local.rule: Host(`minio-api.${LOCAL_DOMAIN}`)
traefik.http.routers.minio-api-local.entrypoints: websecure
traefik.http.routers.minio-api-local.service: minio-api
traefik.http.routers.minio-api-local.tls: true
# Runtipi managed
runtipi.managed: true

View File

@@ -0,0 +1,28 @@
# Minio - Open Source Object Storage
Host your own Amazon S3 compatible Object Storage!
## Installation Info
This MinIO setup requires two exposed URLS
- The console URL
- The S3 API URL
While the console URL is defined by the runtipi's default expose URL you need to define the S3 API URL in the settings when installing.
**Example:**
- API: Minio S3 API URL: s3.mydomain.com
- Console: Exposed URL: minio.mydomain.com
| Exposed Service | Local Port | Exposed Domain |
| ------------------- | ---------- | ------------------ |
| Minio API | IP:8000 | s3.mydomain.com |
| Minio Admin Console | IP:8001 | minio.mydomain.com |
## About
MinIO is a High Performance Object Storage released under GNU Affero General Public License v3.0. It is API compatible with Amazon S3 cloud storage service. Use MinIO to build high performance infrastructure for machine learning, analytics and application data workloads.
See https://github.com/minio/minio for more details

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB