aboutsummaryrefslogtreecommitdiff
path: root/template/docker-compose.yaml.template
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2022-10-28 23:07:12 +0800
committercrupest <crupest@outlook.com>2022-10-28 23:07:12 +0800
commit125f22cb83b89f9f5011ca2ec835342ea8876833 (patch)
tree1ea402b1b7923ee06413c418f68ab5cc0835b51d /template/docker-compose.yaml.template
parent4c35716b592a728e530ded6cac0416bce7d71179 (diff)
downloadcrupest-125f22cb83b89f9f5011ca2ec835342ea8876833.tar.gz
crupest-125f22cb83b89f9f5011ca2ec835342ea8876833.tar.bz2
crupest-125f22cb83b89f9f5011ca2ec835342ea8876833.zip
...
Diffstat (limited to 'template/docker-compose.yaml.template')
-rw-r--r--template/docker-compose.yaml.template109
1 files changed, 109 insertions, 0 deletions
diff --git a/template/docker-compose.yaml.template b/template/docker-compose.yaml.template
new file mode 100644
index 0000000..9ac23ca
--- /dev/null
+++ b/template/docker-compose.yaml.template
@@ -0,0 +1,109 @@
+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: codercom/code-server:latest
+ container_name: code_server
+ restart: on-failure:3
+ volumes:
+ - ./data/code-server:/data
+ - ./data/code-server-config.yaml:/home/coder/.config/code-server/config.yaml
+ ports:
+ - "8080:8080"
+ environment:
+ - "DOCKER_USER=$USER"
+ user: "{{CRUPEST_UID}}:{{CRUPEST_GID}}"
+ networks:
+ - internal
+
+ caddy:
+ image: caddy:latest
+ container_name: caddy
+ restart: always
+ volumes:
+ - ./Caddyfile:/etc/caddy/Caddyfile
+ - ./site:/srv:ro
+ - caddy_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
+
+volumes:
+ caddy_data:
+ caddy_config:
+
+
+networks:
+ internal:
+ internal: true
+ external: