From 86fc59d850964b4c6748ee0c3fc161156a3420a0 Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Sun, 30 Jun 2024 22:12:06 -0600 Subject: [PATCH] feat: add minio --- public/templates/minio.png | Bin 0 -> 11496 bytes templates/minio/docker-compose.yml | 31 +++++++++++++++++++++++++++++ templates/minio/index.ts | 23 +++++++++++++++++++++ templates/templates.ts | 15 ++++++++++++++ 4 files changed, 69 insertions(+) create mode 100644 public/templates/minio.png create mode 100644 templates/minio/docker-compose.yml create mode 100644 templates/minio/index.ts diff --git a/public/templates/minio.png b/public/templates/minio.png new file mode 100644 index 0000000000000000000000000000000000000000..38f6ff9f01d54b07a8af71ccc6b52eb7e18e4ba6 GIT binary patch literal 11496 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 DnX+}P literal 0 HcmV?d00001 diff --git a/templates/minio/docker-compose.yml b/templates/minio/docker-compose.yml new file mode 100644 index 000000000..25701ea89 --- /dev/null +++ b/templates/minio/docker-compose.yml @@ -0,0 +1,31 @@ +version: '3.8' +services: + minio: + image: minio/minio + ports: + - ${MINIO_API_PORT} + - ${MINIO_DASHBOARD_PORT} + volumes: + - minio-data:/data + environment: + - MINIO_ROOT_USER=minioadmin + - MINIO_ROOT_PASSWORD=minioadmin123 + command: server /data --console-address ":9001" + networks: + - dokploy-network + labels: + - traefik.enable=true + - traefik.http.routers.${HASH}.service=${HASH} + - traefik.http.routers.${HASH}.rule=Host(`${MINIO_DASHBOARD_HOST}`) + - traefik.http.services.${HASH}.loadbalancer.server.port=${MINIO_DASHBOARD_PORT} + # API router and service + - traefik.http.routers.${HASH}-api.service=${HASH}-api + - traefik.http.routers.${HASH}-api.rule=Host(`${MINIO_API_HOST}`) + - traefik.http.services.${HASH}-api.loadbalancer.server.port=${MINIO_API_PORT} + +volumes: + minio-data: + +networks: + dokploy-network: + external: true diff --git a/templates/minio/index.ts b/templates/minio/index.ts new file mode 100644 index 000000000..aa45c6696 --- /dev/null +++ b/templates/minio/index.ts @@ -0,0 +1,23 @@ +import { + generateHash, + generateRandomDomain, + type Template, + type Schema, +} from "../utils"; + +export function generate(schema: Schema): Template { + const mainServiceHash = generateHash(schema.projectName); + const randomDomain = generateRandomDomain(schema); + const apiDomain = generateRandomDomain(schema); + const envs = [ + `MINIO_DASHBOARD_HOST=${randomDomain}`, + "MINIO_DASHBOARD_PORT=9001", + `MINIO_API_HOST=${apiDomain}`, + "MINIO_API_PORT=9000", + `HASH=${mainServiceHash}`, + ]; + + return { + envs, + }; +} diff --git a/templates/templates.ts b/templates/templates.ts index e94bf994a..128f394dd 100644 --- a/templates/templates.ts +++ b/templates/templates.ts @@ -274,4 +274,19 @@ export const templates: TemplateData[] = [ tags: ["chat"], load: () => import("./rocketchat/index").then((m) => m.generate), }, + { + id: "minio", + name: "Minio", + description: + "Minio is an open source object storage server compatible with Amazon S3 cloud storage service.", + logo: "minio.png", + version: "latest", + links: { + github: "https://github.com/minio/minio", + website: "https://minio.io/", + docs: "https://docs.minio.io/", + }, + tags: ["storage"], + load: () => import("./minio/index").then((m) => m.generate), + }, ];