This repository contains a collection of self-hosted services orchestrated with Docker Compose. Each service lives in its own folder and can be launched individually or together through the root Compose configuration.
The root .env file defines the Compose file list and base settings used across the stack.
The root COMPOSE_FILE includes:
MariaDB/docker-compose.ymlPostgreSQL/docker-compose.ymlRabbitMQ/docker-compose.ymlRedis/docker-compose.ymlPsono/docker-compose.ymlVault-Warden/docker-compose.ymlSeafile/docker-compose.ymlSeaDoc/docker-compose.ymlOnlyOffice/docker-compose.ymlOcis/docker-compose.ymlCollabora/docker-compose.ymlOpenclaw/docker-compose.ymlCaddy-Proxy/docker-compose.yml
The compose path separator is defined by COMPOSE_PATH_SEPARATOR=','.
The root .env file controls image versions, hostnames, storage paths, and credentials.
COMPOSE_FILE: list of Compose files for the stackCOMPOSE_PATH_SEPARATOR: separator used inCOMPOSE_FILEUID/GID: host user/group IDs for volume ownershipBASE_STORAGE_DIR: base path for persistent storage (default/blk)SERVER_PROTOCOL: protocol used by the reverse proxy (https)JWT_PRIVATE_KEY: shared JWT secret for internal services
SEAFILE_IMAGECADDY_IMAGESEADOC_IMAGEMARIA_DB_IMAGEMEMCACHED_IMAGEVAULT_WARDEN_IMAGEPOSTGRES_IMAGEPSONO_IMAGEREDIS_IMAGEONLYOFFICE_IMAGEGITLAB_IMAGEGITLAB_RUNNER_IMAGERABBITMQ_IMAGEOCIS_IMAGECOLLABORA_IMAGEOPENCLAW_IMAGE
VAULT_WARDEN_SERVER_HOSTNAMEPSONO_SERVER_HOSTNAMEONLYOFFICE_SERVER_HOSTNAMESEAFILE_SERVER_HOSTNAMEOCIS_SERVER_HOSTNAMEGITLAB_SERVER_HOSTNAMECOLLABORA_SERVER_HOSTNAMEOPENCLAW_SERVER_HOSTNAME
GITLAB_ROOT_EMAILGITLAB_ROOT_PASSWDRABBITMQ_DEFAULT_USERRABBITMQ_DEFAULT_PASSRABBITMQ_DEFAULT_VHOSTOCIS_ADMIN_PASSWORDCOLLABORA_ADMIN_USERCOLLABORA_ADMIN_PASSWORD
MARIA_DB_HOSTMARIA_DB_PORTMARIA_ROOT_PASSWORDSEAFILE_DB_USERSEAFILE_DB_PASSWORDSEAFILE_DB_NAMESEAFILE_CCNET_DB_NAMESEAFILE_SEAHUB_DB_NAMEONLYOFFICE_DB_USERONLYOFFICE_DB_PASSWORDONLYOFFICE_DB_NAMEONLYOFFICE_REDIS_DBPOSTGRES_USERPOSTGRES_PASSWORDPOSTGRES_DBVAULT_DB_USERVAULT_DB_PASSWORDVAULT_DB
CACHE_PROVIDER:redisormemcachedREDIS_HOSTREDIS_PORTREDIS_PASSWORDMEMCACHED_HOSTMEMCACHED_PORT
INIT_SEAFILE_ADMIN_EMAILINIT_SEAFILE_ADMIN_PASSWORD
ENABLE_SEADOCENABLE_NOTIFICATION_SERVER
From the repository root, use Docker Compose with the root Compose file list:
docker compose up -dIf you need to control the Compose file list manually, use the COMPOSE_FILE value from .env.
Many services use a shared external Docker network named docker_net. Create it if it does not exist:
docker network create docker_net- The
.envfile contains sensitive credentials. Keep it secure and do not commit it to public repositories. - Service-specific README files exist inside each subfolder for detailed configuration and usage.
- The stack assumes TLS termination and proxy routing via the Caddy proxy service.