services: halo: image: halohub/halo:latest container_name: halo restart: on-failure:3 volumes: - ./data/halo:/root/.halo - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro ports: - "8090:8090" environment: - SERVER_PORT=8090 - SPRING_DATASOURCE_DRIVER_CLASS_NAME=org.h2.Driver - SPRING_DATASOURCE_URL=jdbc:h2:file:~/.halo/db/halo - SPRING_DATASOURCE_USERNAME=admin - SPRING_DATASOURCE_PASSWORD={{CRUPEST_HALO_DB_PASSWORD}} - HALO_ADMIN_PATH=admin - HALO_CACHE=memory networks: - internal timeline: image: crupest/timeline:latest container_name: timeline restart: on-failure:3 volumes: - ./data/timeline:/root/timeline ports: - "5000:80" networks: - internal code-server: image: crupest/arch-code-server:latest build: context: ./docker/arch-code-server dockerfile: Dockerfile args: - CRUPEST_USER={{CRUPEST_USER}} - CRUPEST_GROUP={{CRUPEST_GROUP}} - CRUPEST_UID={{CRUPEST_UID}} - CRUPEST_GID={{CRUPEST_GID}} - USE_CHINA_MIRROR={{CRUPEST_IN_CHINA}} container_name: code-server restart: on-failure:3 volumes: - ./data/code-server:/data ports: - "8080:8080" networks: - internal caddy: image: caddy:latest container_name: caddy restart: on-failure:3 volumes: - ./Caddyfile:/etc/caddy/Caddyfile - ./site:/srv:ro - ./data/caddy/data:/data - ./data/caddy/config:/config ports: - "80:80" - "443:443" - "443:443/udp" networks: - internal - external mailserver: image: docker.io/mailserver/docker-mailserver:latest container_name: mailserver # If the FQDN for your mail-server is only two labels (eg: example.com), # you can assign this entirely to `hostname` and remove `domainname`. hostname: mail domainname: {{CRUPEST_DOMAIN}} env_file: mailserver.env # More information about the mail-server ports: # https://docker-mailserver.github.io/docker-mailserver/edge/config/security/understanding-the-ports/ # To avoid conflicts with yaml base-60 float, DO NOT remove the quotation marks. ports: - "25:25" # SMTP (explicit TLS => STARTTLS) - "143:143" # IMAP4 (explicit TLS => STARTTLS) - "465:465" # ESMTP (implicit TLS) - "587:587" # ESMTP (explicit TLS => STARTTLS) - "993:993" # IMAP4 (implicit TLS) volumes: - ./data/dms/mail-data/:/var/mail/ - ./data/dms/mail-state/:/var/mail-state/ - ./data/dms/mail-logs/:/var/log/mail/ - ./data/dms/config/:/tmp/docker-mailserver/ - ./data/certbot/certs:/etc/letsencrypt - /etc/localtime:/etc/localtime:ro restart: always stop_grace_period: 1m cap_add: - NET_ADMIN healthcheck: test: "ss --listening --tcp | grep -P 'LISTEN.+:smtp' || exit 1" timeout: 3s retries: 0 networks: - external networks: internal: internal: true external: