Skip to main content

Minio Storage

With Minio (Open Source Object Storage)

To use Minio object storage, you will need to add the corresponding environment variable configuration

The config file docker-compose.yml:

name: portabase

services:

portabase:
image: solucetechnologies/portabase:latest
environment:
- TIME_ZONE="Europe/Paris"
depends_on:
db:
condition: service_healthy
container_name: portabase-app
env_file:
- .env
expose:
- '80'
networks:
- traefik
- default
labels:
- "traefik.enable=true"
- "traefik.http.routers.portabase.entrypoints=web,websecure"
- "traefik.http.routers.portabase.rule=Host(`portabase.exemple.com`)"

db:
image: postgres:16-alpine
ports:
- "5433:5432"
volumes:
- postgres-data:/var/lib/postgresql/data
environment:
- POSTGRES_DB=<your_database>
- POSTGRES_USER=<database_user>
- POSTGRES_PASSWORD=<database_password>
healthcheck:
test: [ "CMD-SHELL", "pg_isready -U devuser -d devdb" ]
interval: 10s
timeout: 5s
retries: 5

s3:
image: docker.io/bitnami/minio:latest
expose:
- 9000
- 9001
networks:
- traefik
- default
volumes:
- minio_data:/data
environment:
- MINIO_ROOT_USER=<root_user>
- MINIO_ROOT_PASSWORD=<root_password>
- MINIO_DEFAULT_BUCKETS=<default_bucket>
labels:
- "traefik.enable=true"

- "traefik.http.routers.api-s3-portabase.entrypoints=web,websecure"
- "traefik.http.routers.api-s3-portabase.rule=Host(`api.s3.portabase.exemple.com`)"
- "traefik.http.routers.api-s3-portabase.service=api-s3-portabase"
- "traefik.http.services.api-s3-portabase.loadbalancer.server.port=9000"

- "traefik.http.routers.webui-s3-portabase.entrypoints=web,websecure"
- "traefik.http.routers.webui-s3-portabase.rule=Host(`s3.portabase.exemple.com`)"
- "traefik.http.routers.webui-s3-portabase.service=webui-s3-portabase"
- "traefik.http.services.webui-s3-portabase.loadbalancer.server.port=9001"

volumes:
postgres-data:
minio_data:

networks:
traefik:
name: traefik_network
external: true