Compare commits
19 Commits
258c204163
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 8295b625c1 | |||
| 593e8f5238 | |||
| e2c73da3b5 | |||
| c44be3079c | |||
| 3b687f582c | |||
| b8ce15ecfa | |||
| baf4ed51ca | |||
| e0d86e37cc | |||
| eca500ff9f | |||
| 4a02405e06 | |||
| 57f4fbe9f3 | |||
| 905fa852a5 | |||
| 3cd3b692c1 | |||
| dd6fcdedd1 | |||
| 8487de2298 | |||
| 8488001461 | |||
| 34020ece2f | |||
| 74e451fdf2 | |||
| 4fba524f00 |
22
README.md
@@ -2,6 +2,22 @@
|
||||
- **Bash**
|
||||
- **Docker**
|
||||
- **Docker compose**
|
||||
- **Ports:**
|
||||
- **Caddy**
|
||||
- 80/tcp (HTTP)
|
||||
- 443/tcp (HTTPS)
|
||||
- **Stalwart**
|
||||
- 25/tcp (SMTP)
|
||||
- 110/tcp (POP3)
|
||||
- 995/tcp (POP3S)
|
||||
- 143/tcp (IMAP)
|
||||
- 993/tcp (IMAPS)
|
||||
- 465/tcp (SMTPS)
|
||||
- 587/tcp (SUBMISSION)
|
||||
- **Croc**
|
||||
- 9009/tcp (PICHAT)
|
||||
- 9010/tcp (SDR)
|
||||
- 9011/tcp (D-STAR)
|
||||
|
||||
## Getting Started
|
||||
|
||||
@@ -22,11 +38,13 @@ Create `.env` configuration files with the following command:
|
||||
Edit the generated `.env` files to fill in the required fields:
|
||||
|
||||
- `./gitea/.env`
|
||||
- `./searxng/.env`
|
||||
- `./sftpgo/.env`
|
||||
- `./vaultwarden/.env`
|
||||
- `./wg_easy/.env`
|
||||
- `./glance/.env`
|
||||
- `./ghost/.env`
|
||||
- `./immich/.env`
|
||||
- `./uptime_kuma/.env`
|
||||
- `./croc/.env`
|
||||
- `./caddy/.env`
|
||||
- `./caddy/Caddyfile.private`
|
||||
|
||||
|
||||
@@ -1,48 +1,35 @@
|
||||
############# Grafana #############
|
||||
GRAFANA_DOMAIN=
|
||||
GRAFANA_CRT=
|
||||
GRAFANA_KEY=
|
||||
|
||||
############# Gitea #############
|
||||
GITEA_DOMAIN=
|
||||
GITEA_CRT=
|
||||
GITEA_KEY=
|
||||
|
||||
############# Slash #############
|
||||
SLASH_DOMAIN=
|
||||
SLASH_CRT=
|
||||
SLASH_KEY=
|
||||
|
||||
############# Memos #############
|
||||
MEMOS_DOMAIN=
|
||||
MEMOS_CRT=
|
||||
MEMOS_KEY=
|
||||
|
||||
############# WG easy #############
|
||||
WG_EASY_DOMAIN=
|
||||
WG_EASY_CRT=
|
||||
WG_EASY_KEY=
|
||||
|
||||
############# VaultWarden #############
|
||||
VAULTWARDEN_DOMAIN=
|
||||
VAULTWARDEN_CRT=
|
||||
VAULTWARDEN_KEY=
|
||||
|
||||
############# Sftpgo #############
|
||||
SFTPGO_DOMAIN=
|
||||
|
||||
############# Glance #############
|
||||
GLANCE_DOMAIN=
|
||||
GLANCE_CRT=
|
||||
GLANCE_KEY=
|
||||
|
||||
############# Ghost #############
|
||||
GHOST_DOMAIN=
|
||||
GHOST_CRT=
|
||||
GHOST_KEY=
|
||||
|
||||
############# Immich #############
|
||||
IMMICH_DOMAIN=
|
||||
IMMICH_CRT=
|
||||
IMMICH_KEY=
|
||||
|
||||
############# Uptime Kuma #############
|
||||
UPTIME_KUMA_DOMAIN=
|
||||
|
||||
############# Stalwart #############
|
||||
STALWART_DOMAIN=
|
||||
|
||||
106
caddy/Caddyfile
@@ -3,6 +3,11 @@
|
||||
metrics {
|
||||
per_host
|
||||
}
|
||||
log {
|
||||
output file /var/log/caddy/access.log
|
||||
format json
|
||||
level DEBUG
|
||||
}
|
||||
}
|
||||
|
||||
:2019 {
|
||||
@@ -11,98 +16,56 @@
|
||||
|
||||
############## grafana ##############
|
||||
{$GRAFANA_DOMAIN} {
|
||||
tls /etc/ssl/custom/{$GRAFANA_CRT} /etc/ssl/custom/{$GRAFANA_KEY}
|
||||
|
||||
request_body {
|
||||
max_size 2048MB
|
||||
}
|
||||
|
||||
reverse_proxy http://grafana:3000 {
|
||||
header_up X-Real-IP {http.request.header.Cf-Connecting-Ip}
|
||||
header_up X-Forwarded-For {http.request.header.Cf-Connecting-Ip}
|
||||
header_up X-Country-Code {http.request.header.Cf-Ipcountry}
|
||||
header_up -CF-*
|
||||
}
|
||||
reverse_proxy http://grafana:3000
|
||||
}
|
||||
|
||||
############## gitea ##############
|
||||
{$GITEA_DOMAIN} {
|
||||
tls /etc/ssl/custom/{$GITEA_CRT} /etc/ssl/custom/{$GITEA_KEY}
|
||||
|
||||
request_body {
|
||||
max_size 512MB
|
||||
}
|
||||
|
||||
reverse_proxy http://gitea:3000 {
|
||||
header_up X-Real-IP {http.request.header.Cf-Connecting-Ip}
|
||||
header_up X-Forwarded-For {http.request.header.Cf-Connecting-Ip}
|
||||
header_up X-Country-Code {http.request.header.Cf-Ipcountry}
|
||||
header_up -CF-*
|
||||
}
|
||||
reverse_proxy http://gitea:3000
|
||||
}
|
||||
|
||||
############## slash ##############
|
||||
{$SLASH_DOMAIN} {
|
||||
tls /etc/ssl/custom/{$SLASH_CRT} /etc/ssl/custom/{$SLASH_KEY}
|
||||
|
||||
request_body {
|
||||
max_size 10MB
|
||||
}
|
||||
|
||||
reverse_proxy http://slash:5231 {
|
||||
header_up X-Real-IP {http.request.header.Cf-Connecting-Ip}
|
||||
header_up X-Forwarded-For {http.request.header.Cf-Connecting-Ip}
|
||||
header_up X-Country-Code {http.request.header.Cf-Ipcountry}
|
||||
header_up -CF-*
|
||||
}
|
||||
reverse_proxy http://slash:5231
|
||||
}
|
||||
|
||||
############## memos ##############
|
||||
{$MEMOS_DOMAIN} {
|
||||
tls /etc/ssl/custom/{$MEMOS_CRT} /etc/ssl/custom/{$MEMOS_KEY}
|
||||
|
||||
request_body {
|
||||
max_size 1024MB
|
||||
}
|
||||
|
||||
reverse_proxy http://memos:5230 {
|
||||
header_up X-Real-IP {http.request.header.Cf-Connecting-Ip}
|
||||
header_up X-Forwarded-For {http.request.header.Cf-Connecting-Ip}
|
||||
header_up X-Country-Code {http.request.header.Cf-Ipcountry}
|
||||
header_up -CF-*
|
||||
}
|
||||
reverse_proxy http://memos:5230
|
||||
}
|
||||
|
||||
############## wg-easy ##############
|
||||
{$WG_EASY_DOMAIN} {
|
||||
tls /etc/ssl/custom/{$WG_EASY_CRT} /etc/ssl/custom/{$WG_EASY_KEY}
|
||||
|
||||
request_body {
|
||||
max_size 10MB
|
||||
}
|
||||
|
||||
reverse_proxy http://wg-easy:51821 {
|
||||
header_up X-Real-IP {http.request.header.Cf-Connecting-Ip}
|
||||
header_up X-Forwarded-For {http.request.header.Cf-Connecting-Ip}
|
||||
header_up X-Country-Code {http.request.header.Cf-Ipcountry}
|
||||
header_up -CF-*
|
||||
}
|
||||
reverse_proxy http://wg-easy:51821
|
||||
}
|
||||
|
||||
############## vaultwarden ##############
|
||||
{$VAULTWARDEN_DOMAIN} {
|
||||
tls /etc/ssl/custom/{$VAULTWARDEN_CRT} /etc/ssl/custom/{$VAULTWARDEN_KEY}
|
||||
|
||||
request_body {
|
||||
max_size 128MB
|
||||
}
|
||||
|
||||
reverse_proxy http://vaultwarden {
|
||||
header_up X-Real-IP {http.request.header.Cf-Connecting-Ip}
|
||||
header_up X-Forwarded-For {http.request.header.Cf-Connecting-Ip}
|
||||
header_up X-Country-Code {http.request.header.Cf-Ipcountry}
|
||||
header_up -CF-*
|
||||
}
|
||||
reverse_proxy http://vaultwarden
|
||||
}
|
||||
|
||||
############## sftpgo ##############
|
||||
@@ -111,66 +74,61 @@
|
||||
max_size 8120MB
|
||||
}
|
||||
|
||||
reverse_proxy http://sftpgo:8080 {
|
||||
header_up X-Real-IP {http.request.header.Cf-Connecting-Ip}
|
||||
header_up X-Forwarded-For {http.request.header.Cf-Connecting-Ip}
|
||||
header_up X-Country-Code {http.request.header.Cf-Ipcountry}
|
||||
header_up -CF-*
|
||||
}
|
||||
reverse_proxy http://sftpgo:8080
|
||||
}
|
||||
|
||||
############## glance ##############
|
||||
{$GLANCE_DOMAIN} {
|
||||
tls /etc/ssl/custom/{$GLANCE_CRT} /etc/ssl/custom/{$GLANCE_KEY}
|
||||
|
||||
request_body {
|
||||
max_size 64MB
|
||||
}
|
||||
|
||||
reverse_proxy http://glance:8080 {
|
||||
header_up X-Real-IP {http.request.header.Cf-Connecting-Ip}
|
||||
header_up X-Forwarded-For {http.request.header.Cf-Connecting-Ip}
|
||||
header_up X-Country-Code {http.request.header.Cf-Ipcountry}
|
||||
header_up -CF-*
|
||||
}
|
||||
reverse_proxy http://glance:8080
|
||||
}
|
||||
|
||||
############## ghost ##############
|
||||
{$GHOST_DOMAIN} {
|
||||
tls /etc/ssl/custom/{$GHOST_CRT} /etc/ssl/custom/{$GHOST_KEY}
|
||||
|
||||
request_body {
|
||||
max_size 124MB
|
||||
}
|
||||
|
||||
reverse_proxy http://ghost:2368 {
|
||||
header_up X-Real-IP {http.request.header.Cf-Connecting-Ip}
|
||||
header_up X-Forwarded-For {http.request.header.Cf-Connecting-Ip}
|
||||
header_up X-Country-Code {http.request.header.Cf-Ipcountry}
|
||||
header_up X-Forwarded-Proto {http.request.scheme}
|
||||
header_up Host {http.request.host}
|
||||
header_up -CF-*
|
||||
}
|
||||
}
|
||||
|
||||
############## immich ##############
|
||||
{$IMMICH_DOMAIN} {
|
||||
tls /etc/ssl/custom/{$IMMICH_CRT} /etc/ssl/custom/{$IMMICH_KEY}
|
||||
|
||||
request_body {
|
||||
max_size 1024MB
|
||||
}
|
||||
|
||||
reverse_proxy http://immich_server:2283 {
|
||||
header_up X-Real-IP {http.request.header.Cf-Connecting-Ip}
|
||||
header_up X-Forwarded-For {http.request.header.Cf-Connecting-Ip}
|
||||
header_up X-Country-Code {http.request.header.Cf-Ipcountry}
|
||||
header_up X-Forwarded-Proto {http.request.scheme}
|
||||
header_up Host {http.request.host}
|
||||
header_up -CF-*
|
||||
}
|
||||
}
|
||||
|
||||
############## uptime-kuma ##############
|
||||
{$UPTIME_KUMA_DOMAIN} {
|
||||
request_body {
|
||||
max_size 1024MB
|
||||
}
|
||||
|
||||
reverse_proxy http://uptime_kuma:3001 {
|
||||
header_up X-Forwarded-Proto {http.request.scheme}
|
||||
header_up Host {http.request.host}
|
||||
}
|
||||
}
|
||||
|
||||
############## stalwart ##############
|
||||
{$STALWART_DOMAIN} {
|
||||
request_body {
|
||||
max_size 4048MB
|
||||
}
|
||||
|
||||
reverse_proxy http://stalwart:8080
|
||||
}
|
||||
|
||||
import Caddyfile.private
|
||||
|
||||
@@ -6,9 +6,11 @@ networks:
|
||||
|
||||
services:
|
||||
caddy:
|
||||
image: caddy:2.10.0-alpine
|
||||
image: caddy:2-alpine
|
||||
container_name: caddy
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "com.centurylinklabs.watchtower.enable=true"
|
||||
networks:
|
||||
- caddy
|
||||
ports:
|
||||
@@ -21,6 +23,7 @@ services:
|
||||
- ./ssl:/etc/ssl/custom/
|
||||
- ./data/data:/data
|
||||
- ./data/config:/config
|
||||
- ./data/log:/var/log/caddy
|
||||
- ../private_volume:/private_volume
|
||||
env_file:
|
||||
- ./.env
|
||||
|
||||
1
croc/.env.example
Normal file
@@ -0,0 +1 @@
|
||||
CROC_PASS=pass1234
|
||||
9
croc/docker-compose.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
services:
|
||||
croc:
|
||||
image: schollz/croc:10
|
||||
labels:
|
||||
- "com.centurylinklabs.watchtower.enable=true"
|
||||
ports:
|
||||
- "9009-9013:9009-9013"
|
||||
env_file: .env
|
||||
restart: unless-stopped
|
||||
@@ -9,6 +9,8 @@ services:
|
||||
image: ghost:6-alpine
|
||||
container_name: ghost
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "com.centurylinklabs.watchtower.enable=true"
|
||||
networks:
|
||||
- caddy
|
||||
environment:
|
||||
|
||||
@@ -8,8 +8,10 @@ networks:
|
||||
|
||||
services:
|
||||
server:
|
||||
image: gitea/gitea:1.24.3
|
||||
image: gitea/gitea:1
|
||||
container_name: gitea
|
||||
labels:
|
||||
- "com.centurylinklabs.watchtower.enable=true"
|
||||
environment:
|
||||
- USER_UID=${USER_UID}
|
||||
- USER_GID=${USER_GID}
|
||||
@@ -27,7 +29,7 @@ services:
|
||||
memory: 1G
|
||||
|
||||
act:
|
||||
image: gitea/act_runner:0.2.11
|
||||
image: gitea/act_runner:0.2.13
|
||||
container_name: gitea_act
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
|
||||
|
Before Width: | Height: | Size: 44 KiB |
@@ -1 +0,0 @@
|
||||
<svg version="1.1" id="main_outline" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" style="enable-background:new 0 0 640 640;" xml:space="preserve" viewBox="5.67 143.05 628.65 387.55"> <g> <path id="teabag" style="fill:#FFFFFF" d="M395.9,484.2l-126.9-61c-12.5-6-17.9-21.2-11.8-33.8l61-126.9c6-12.5,21.2-17.9,33.8-11.8 c17.2,8.3,27.1,13,27.1,13l-0.1-109.2l16.7-0.1l0.1,117.1c0,0,57.4,24.2,83.1,40.1c3.7,2.3,10.2,6.8,12.9,14.4 c2.1,6.1,2,13.1-1,19.3l-61,126.9C423.6,484.9,408.4,490.3,395.9,484.2z"></path> <g> <g> <path style="fill:#609926" d="M622.7,149.8c-4.1-4.1-9.6-4-9.6-4s-117.2,6.6-177.9,8c-13.3,0.3-26.5,0.6-39.6,0.7c0,39.1,0,78.2,0,117.2 c-5.5-2.6-11.1-5.3-16.6-7.9c0-36.4-0.1-109.2-0.1-109.2c-29,0.4-89.2-2.2-89.2-2.2s-141.4-7.1-156.8-8.5 c-9.8-0.6-22.5-2.1-39,1.5c-8.7,1.8-33.5,7.4-53.8,26.9C-4.9,212.4,6.6,276.2,8,285.8c1.7,11.7,6.9,44.2,31.7,72.5 c45.8,56.1,144.4,54.8,144.4,54.8s12.1,28.9,30.6,55.5c25,33.1,50.7,58.9,75.7,62c63,0,188.9-0.1,188.9-0.1s12,0.1,28.3-10.3 c14-8.5,26.5-23.4,26.5-23.4s12.9-13.8,30.9-45.3c5.5-9.7,10.1-19.1,14.1-28c0,0,55.2-117.1,55.2-231.1 C633.2,157.9,624.7,151.8,622.7,149.8z M125.6,353.9c-25.9-8.5-36.9-18.7-36.9-18.7S69.6,321.8,60,295.4 c-16.5-44.2-1.4-71.2-1.4-71.2s8.4-22.5,38.5-30c13.8-3.7,31-3.1,31-3.1s7.1,59.4,15.7,94.2c7.2,29.2,24.8,77.7,24.8,77.7 S142.5,359.9,125.6,353.9z M425.9,461.5c0,0-6.1,14.5-19.6,15.4c-5.8,0.4-10.3-1.2-10.3-1.2s-0.3-0.1-5.3-2.1l-112.9-55 c0,0-10.9-5.7-12.8-15.6c-2.2-8.1,2.7-18.1,2.7-18.1L322,273c0,0,4.8-9.7,12.2-13c0.6-0.3,2.3-1,4.5-1.5c8.1-2.1,18,2.8,18,2.8 l110.7,53.7c0,0,12.6,5.7,15.3,16.2c1.9,7.4-0.5,14-1.8,17.2C474.6,363.8,425.9,461.5,425.9,461.5z"></path> <path style="fill:#609926" d="M326.8,380.1c-8.2,0.1-15.4,5.8-17.3,13.8c-1.9,8,2,16.3,9.1,20c7.7,4,17.5,1.8,22.7-5.4 c5.1-7.1,4.3-16.9-1.8-23.1l24-49.1c1.5,0.1,3.7,0.2,6.2-0.5c4.1-0.9,7.1-3.6,7.1-3.6c4.2,1.8,8.6,3.8,13.2,6.1 c4.8,2.4,9.3,4.9,13.4,7.3c0.9,0.5,1.8,1.1,2.8,1.9c1.6,1.3,3.4,3.1,4.7,5.5c1.9,5.5-1.9,14.9-1.9,14.9 c-2.3,7.6-18.4,40.6-18.4,40.6c-8.1-0.2-15.3,5-17.7,12.5c-2.6,8.1,1.1,17.3,8.9,21.3c7.8,4,17.4,1.7,22.5-5.3 c5-6.8,4.6-16.3-1.1-22.6c1.9-3.7,3.7-7.4,5.6-11.3c5-10.4,13.5-30.4,13.5-30.4c0.9-1.7,5.7-10.3,2.7-21.3 c-2.5-11.4-12.6-16.7-12.6-16.7c-12.2-7.9-29.2-15.2-29.2-15.2s0-4.1-1.1-7.1c-1.1-3.1-2.8-5.1-3.9-6.3c4.7-9.7,9.4-19.3,14.1-29 c-4.1-2-8.1-4-12.2-6.1c-4.8,9.8-9.7,19.7-14.5,29.5c-6.7-0.1-12.9,3.5-16.1,9.4c-3.4,6.3-2.7,14.1,1.9,19.8 C343.2,346.5,335,363.3,326.8,380.1z"></path> </g> </g> </g> </svg>
|
||||
|
Before Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 56 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 14 KiB |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-slash"><line x1="9" x2="15" y1="15" y2="9"/><circle cx="12" cy="12" r="10"/></svg>
|
||||
|
Before Width: | Height: | Size: 291 B |
@@ -1,5 +0,0 @@
|
||||
<svg version="1.1" viewBox="0 0 60 60" xmlns="http://www.w3.org/2000/svg">
|
||||
<title>Vaultwarden</title>
|
||||
<path class="tw-fill-marketing-logo" d="m18 11-5.6.00073 15 42h5.3l15-42h-5.6l-9.5 27c-.63 1.7-1.2 3.4-1.6 4.9-.43 1.5-.79 2.9-1.1 4.3-.28-1.4-.63-2.8-1.1-4.4-.43-1.5-.97-3.2-1.6-5l-9.5-27z"></path>
|
||||
<path class="tw-fill-marketing-logo" d="m30 0.05c-0.19 0.068-0.34 0.2-0.44 0.37l-1.5 2.5c-0.27 0.022-0.53 0.046-0.8 0.076l-2-2.2c-0.43-0.44-1.2-0.29-1.4 0.29l-1 2.8c-0.26 0.074-0.51 0.15-0.77 0.23l-2.4-1.8c-0.52-0.45-1.3-0.12-1.4 0.56l-0.44 2.9c-0.23 0.12-0.47 0.24-0.7 0.37l-2.7-1.3c-0.58-0.26-1.2 0.18-1.2 0.81l0.14 3c-0.2 0.16-0.4 0.33-0.6 0.49l-2.9-0.72c-0.59-0.12-1.1 0.41-1 1l0.72 2.9c-0.17 0.2-0.33 0.4-0.49 0.6l-3-0.14c-0.63-0.027-1.1 0.62-0.81 1.2l1.3 2.7c-0.13 0.23-0.25 0.46-0.37 0.7l-2.9 0.44c-0.68 0.068-1 0.88-0.56 1.4l1.8 2.4c-0.081 0.25-0.16 0.51-0.23 0.77l-2.8 1c-0.58 0.22-0.73 0.97-0.29 1.4l2.2 2c-0.03 0.26-0.054 0.53-0.076 0.8l-2.5 1.5c-0.6 0.32-0.6 1.2 0 1.5l2.5 1.5c0.022 0.27 0.046 0.53 0.076 0.8l-2.2 2c-0.44 0.43-0.29 1.2 0.29 1.4l2.8 1c0.074 0.26 0.15 0.51 0.23 0.77l-1.8 2.4c-0.45 0.52-0.12 1.3 0.56 1.4l2.9 0.44c0.12 0.23 0.24 0.47 0.37 0.7l-1.3 2.7c-0.26 0.58 0.18 1.2 0.81 1.2l3-0.14c0.16 0.2 0.33 0.4 0.49 0.6l-0.72 2.9c-0.12 0.59 0.41 1.1 1 1l2.9-0.72c0.2 0.17 0.4 0.33 0.6 0.49l-0.14 3c-0.027 0.63 0.62 1.1 1.2 0.81l2.7-1.3c0.23 0.13 0.46 0.25 0.7 0.37l0.44 2.9c0.068 0.68 0.88 1 1.4 0.56l2.4-1.8c0.25 0.081 0.51 0.16 0.77 0.23l1 2.8c0.22 0.58 0.97 0.73 1.4 0.29l2-2.2c0.26 0.03 0.53 0.054 0.8 0.076l1.5 2.5c0.32 0.6 1.2 0.6 1.5 0l1.5-2.5c0.27-0.022 0.53-0.046 0.8-0.076l2 2.2c0.43 0.44 1.2 0.29 1.4-0.29l1-2.8c0.26-0.074 0.51-0.15 0.77-0.23l2.4 1.8c0.52 0.45 1.3 0.12 1.4-0.56l0.44-2.9c0.23-0.12 0.47-0.24 0.7-0.37l2.7 1.3c0.58 0.26 1.2-0.18 1.2-0.81l-0.14-3c0.2-0.16 0.4-0.33 0.6-0.49l2.9 0.72c0.59 0.12 1.1-0.41 1-1l-0.72-2.9c0.17-0.2 0.33-0.4 0.49-0.6l3 0.14c0.63 0.027 1.1-0.62 0.81-1.2l-1.3-2.7c0.13-0.23 0.25-0.46 0.37-0.7l2.9-0.44c0.68-0.068 1-0.88 0.56-1.4l-1.8-2.4c0.081-0.25 0.16-0.51 0.23-0.77l2.8-1c0.58-0.22 0.73-0.97 0.29-1.4l-2.2-2c0.03-0.26 0.054-0.53 0.076-0.8l2.5-1.5c0.6-0.32 0.6-1.2 0-1.5l-2.5-1.5c-0.022-0.27-0.046-0.53-0.076-0.8l2.2-2c0.44-0.43 0.29-1.2-0.29-1.4l-2.8-1c-0.074-0.26-0.15-0.51-0.23-0.77l1.8-2.4c0.45-0.52 0.12-1.3-0.56-1.4l-2.9-0.44c-0.12-0.23-0.24-0.47-0.37-0.7l1.3-2.7c0.26-0.58-0.18-1.2-0.81-1.2l-3 0.14c-0.16-0.2-0.33-0.4-0.49-0.6l0.72-2.9c0.12-0.59-0.41-1.1-1-1l-2.9 0.72c-0.2-0.17-0.4-0.33-0.6-0.49l0.14-3c0.027-0.63-0.62-1.1-1.2-0.81l-2.7 1.3c-0.23-0.13-0.46-0.25-0.7-0.37l-0.44-2.9c-0.068-0.68-0.88-1-1.4-0.56l-2.4 1.8c-0.25-0.081-0.51-0.16-0.77-0.23l-1-2.8c-0.22-0.58-0.97-0.73-1.4-0.29l-2 2.2c-0.26-0.03-0.53-0.054-0.8-0.076l-1.5-2.5c-0.2-0.34-0.62-0.5-1-0.37zm0.29 5.4c0.94 0 1.7 0.76 1.7 1.7s-0.76 1.7-1.7 1.7-1.7-0.76-1.7-1.7 0.76-1.7 1.7-1.7zm-4 2.9 2.8 2.8c0.66 0.66 1.7 0.66 2.4 0l2.8-2.8c6.6 1.2 12 5.4 15 11l-1.8 3.6c-0.43 0.84-0.097 1.9 0.75 2.3l3.6 1.8c0.12 0.92 0.18 1.9 0.18 2.8 0 5.8-2.3 11-6 15l-4-0.63c-0.94-0.18-1.8 0.45-2 1.4l-0.63 4c-2.8 1.3-6 2.1-9.4 2.1s-6.5-0.76-9.4-2.1l-0.63-4c-0.15-0.95-1.1-1.6-2-1.4l-4 0.63c-3.7-3.9-6-9.2-6-15 0-0.96 0.064-1.9 0.18-2.8l3.6-1.8c0.85-0.42 1.2-1.5 0.75-2.3l-1.8-3.6c3.1-5.7 8.6-9.8 15-11zm-18 13c0.16 0.0045 0.32 0.032 0.48 0.083 0.93 0.29 1.4 1.3 1.1 2.2-0.29 0.93-1.3 1.4-2.2 1.1-0.93-0.29-1.4-1.3-1.1-2.2 0.23-0.74 0.93-1.2 1.7-1.2zm43 0c0.77-0.034 1.5 0.46 1.7 1.2 0.33 0.91-0.17 1.9-1.1 2.2-0.91 0.33-1.9-0.17-2.2-1.1-0.33-0.91 0.17-1.9 1.1-2.2 0.16-0.051 0.32-0.079 0.48-0.083zm-35 25c0.33 0.017 0.64 0.13 0.91 0.32 0.78 0.55 0.95 1.6 0.38 2.4-0.55 0.78-1.6 0.95-2.4 0.38-0.78-0.55-0.95-1.6-0.38-2.4 0.34-0.48 0.91-0.74 1.5-0.7zm27 0c0.59-0.042 1.2 0.22 1.5 0.7 0.57 0.77 0.4 1.8-0.38 2.4-0.77 0.57-1.8 0.4-2.4-0.38-0.57-0.77-0.4-1.8 0.38-2.4 0.27-0.19 0.58-0.3 0.91-0.32z"></path>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 21 KiB |
@@ -7,50 +7,20 @@
|
||||
- type: local
|
||||
name: Services
|
||||
|
||||
- type: monitor
|
||||
cache: 1s
|
||||
title: Services
|
||||
sites:
|
||||
- title: seradar.net
|
||||
url: https://seradar.net/auth
|
||||
icon: /assets/seradar.png
|
||||
- title: git.aykhans.me
|
||||
url: https://git.aykhans.me/aykhans
|
||||
icon: /assets/gitea.svg
|
||||
- title: ftp.aykhans.me
|
||||
url: https://ftp.aykhans.me/web/client/login
|
||||
icon: /assets/sftpgo.png
|
||||
- title: notes.aykhans.me
|
||||
url: https://notes.aykhans.me/signin
|
||||
icon: /assets/memos.png
|
||||
- title: url.aykhans.me
|
||||
url: https://url.aykhans.me/auth
|
||||
icon: /assets/slash.svg
|
||||
- title: vault.aykhans.me
|
||||
url: https://vault.aykhans.me/#/login
|
||||
icon: /assets/vaultwarden.svg
|
||||
- title: wg.aykhans.me
|
||||
url: https://wg.aykhans.me/
|
||||
icon: /assets/wireguard.png
|
||||
- title: photos.aykhans.me
|
||||
url: https://photos.aykhans.me/
|
||||
icon: /assets/immich.png
|
||||
- title: aykhans.me
|
||||
url: https://aykhans.me/
|
||||
icon: /assets/ghost.png
|
||||
|
||||
- type: docker-containers
|
||||
cache: 0s
|
||||
hide-by-default: false
|
||||
|
||||
- type: releases
|
||||
cache: 1d
|
||||
collapse-after: 3
|
||||
collapse-after: 5
|
||||
# Without authentication the Github API allows for up to 60 requests per hour. You can create a
|
||||
# read-only token from your Github account settings and use it here to increase the limit.
|
||||
token: ${GITHUB_TOKEN}
|
||||
repositories:
|
||||
- caddyserver/caddy
|
||||
- louislam/uptime-kuma
|
||||
- immich-app/immich
|
||||
- glanceapp/glance
|
||||
- go-gitea/gitea
|
||||
- drakkan/sftpgo
|
||||
@@ -62,6 +32,8 @@
|
||||
- prometheus/prometheus
|
||||
- grafana/grafana
|
||||
- TryGhost/Ghost
|
||||
- schollz/croc
|
||||
- stalwartlabs/stalwart
|
||||
|
||||
- size: full
|
||||
widgets:
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
networks:
|
||||
glance:
|
||||
external: false
|
||||
caddy:
|
||||
name: caddy
|
||||
driver: bridge
|
||||
|
||||
@@ -10,9 +10,11 @@ networks:
|
||||
|
||||
services:
|
||||
grafana:
|
||||
image: grafana/grafana-enterprise:12.1.0
|
||||
image: grafana/grafana-enterprise:12.2
|
||||
container_name: grafana
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "com.centurylinklabs.watchtower.enable=true"
|
||||
networks:
|
||||
- grafana
|
||||
- caddy
|
||||
|
||||
@@ -9,15 +9,15 @@ networks:
|
||||
services:
|
||||
immich-server:
|
||||
container_name: immich_server
|
||||
image: ghcr.io/immich-app/immich-server:release
|
||||
image: ghcr.io/immich-app/immich-server:v2
|
||||
labels:
|
||||
- "com.centurylinklabs.watchtower.enable=true"
|
||||
volumes:
|
||||
# Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
|
||||
- ${UPLOAD_LOCATION}:/data
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
env_file:
|
||||
- .env
|
||||
ports:
|
||||
- "2283:2283"
|
||||
depends_on:
|
||||
- redis
|
||||
- database
|
||||
@@ -36,6 +36,8 @@ services:
|
||||
immich-machine-learning:
|
||||
container_name: immich_machine_learning
|
||||
image: ghcr.io/immich-app/immich-machine-learning:release
|
||||
labels:
|
||||
- "com.centurylinklabs.watchtower.enable=true"
|
||||
volumes:
|
||||
- model-cache:/cache
|
||||
env_file:
|
||||
|
||||
100
main.sh
@@ -62,6 +62,8 @@ generate_env_files() {
|
||||
cp --update=none ./glance/.env.example ./glance/.env
|
||||
cp --update=none ./ghost/.env.example ./ghost/.env
|
||||
cp --update=none ./immich/.env.example ./immich/.env
|
||||
cp --update=none ./uptime_kuma/.env.example ./uptime_kuma/.env
|
||||
cp --update=none ./croc/.env.example ./croc/.env
|
||||
cp --update=none ./caddy/Caddyfile.private.example ./caddy/Caddyfile.private
|
||||
# cp --update=none ./slash/.env.example ./slash/.env
|
||||
# cp --update=none ./grafana/.env.example ./grafana/.env
|
||||
@@ -75,7 +77,7 @@ start_services() {
|
||||
docker network create gitea 2>/dev/null
|
||||
|
||||
echo "Starting prometheus..."
|
||||
$DOCKER_COMPOSE_COMMAND -f ./prometheus/docker-compose.yml up -d
|
||||
$DOCKER_COMPOSE_COMMAND -f ./prometheus/docker-compose.yml up --pull -d
|
||||
if [ $? -eq 0 ]; then
|
||||
print_success "Prometheus started successfully."
|
||||
else
|
||||
@@ -84,7 +86,7 @@ start_services() {
|
||||
fi
|
||||
|
||||
echo "Starting Grafana..."
|
||||
$DOCKER_COMPOSE_COMMAND -f ./grafana/docker-compose.yml up -d
|
||||
$DOCKER_COMPOSE_COMMAND -f ./grafana/docker-compose.yml up --pull -d
|
||||
if [ $? -eq 0 ]; then
|
||||
print_success "Grafana started successfully."
|
||||
else
|
||||
@@ -93,7 +95,7 @@ start_services() {
|
||||
fi
|
||||
|
||||
echo "Starting Gitea..."
|
||||
$DOCKER_COMPOSE_COMMAND -f ./gitea/docker-compose.yml up -d
|
||||
$DOCKER_COMPOSE_COMMAND -f ./gitea/docker-compose.yml up --pull -d
|
||||
if [ $? -eq 0 ]; then
|
||||
print_success "Gitea started successfully."
|
||||
else
|
||||
@@ -102,7 +104,7 @@ start_services() {
|
||||
fi
|
||||
|
||||
echo "Starting gitea..."
|
||||
$DOCKER_COMPOSE_COMMAND -f ./gitea/docker-compose.yml up -d
|
||||
$DOCKER_COMPOSE_COMMAND -f ./gitea/docker-compose.yml up --pull -d
|
||||
if [ $? -eq 0 ]; then
|
||||
print_success "Gitea started successfully."
|
||||
else
|
||||
@@ -111,7 +113,7 @@ start_services() {
|
||||
fi
|
||||
|
||||
echo "Starting memos..."
|
||||
$DOCKER_COMPOSE_COMMAND -f ./memos/docker-compose.yml up -d
|
||||
$DOCKER_COMPOSE_COMMAND -f ./memos/docker-compose.yml up --pull -d
|
||||
if [ $? -eq 0 ]; then
|
||||
print_success "Memos started successfully."
|
||||
else
|
||||
@@ -120,7 +122,7 @@ start_services() {
|
||||
fi
|
||||
|
||||
echo "Starting sftpgo..."
|
||||
$DOCKER_COMPOSE_COMMAND -f ./sftpgo/docker-compose.yml up -d
|
||||
$DOCKER_COMPOSE_COMMAND -f ./sftpgo/docker-compose.yml up --pull -d
|
||||
if [ $? -eq 0 ]; then
|
||||
print_success "Sftpgo started successfully."
|
||||
else
|
||||
@@ -129,7 +131,7 @@ start_services() {
|
||||
fi
|
||||
|
||||
echo "Starting slash..."
|
||||
$DOCKER_COMPOSE_COMMAND -f ./slash/docker-compose.yml up -d
|
||||
$DOCKER_COMPOSE_COMMAND -f ./slash/docker-compose.yml up --pull -d
|
||||
if [ $? -eq 0 ]; then
|
||||
print_success "Slash started successfully."
|
||||
else
|
||||
@@ -138,7 +140,7 @@ start_services() {
|
||||
fi
|
||||
|
||||
echo "Starting vaultwarden..."
|
||||
$DOCKER_COMPOSE_COMMAND -f ./vaultwarden/docker-compose.yml up -d
|
||||
$DOCKER_COMPOSE_COMMAND -f ./vaultwarden/docker-compose.yml up --pull -d
|
||||
if [ $? -eq 0 ]; then
|
||||
print_success "Vaultwarden started successfully."
|
||||
else
|
||||
@@ -147,7 +149,7 @@ start_services() {
|
||||
fi
|
||||
|
||||
echo "Starting wg-easy..."
|
||||
$DOCKER_COMPOSE_COMMAND -f ./wg_easy/docker-compose.yml up -d
|
||||
$DOCKER_COMPOSE_COMMAND -f ./wg_easy/docker-compose.yml up --pull -d
|
||||
if [ $? -eq 0 ]; then
|
||||
print_success "Wg-easy started successfully."
|
||||
else
|
||||
@@ -156,7 +158,7 @@ start_services() {
|
||||
fi
|
||||
|
||||
echo "Starting glance..."
|
||||
$DOCKER_COMPOSE_COMMAND -f ./glance/docker-compose.yml up -d
|
||||
$DOCKER_COMPOSE_COMMAND -f ./glance/docker-compose.yml up --pull -d
|
||||
if [ $? -eq 0 ]; then
|
||||
print_success "Glance started successfully."
|
||||
else
|
||||
@@ -165,7 +167,7 @@ start_services() {
|
||||
fi
|
||||
|
||||
echo "Starting ghost..."
|
||||
$DOCKER_COMPOSE_COMMAND -f ./ghost/docker-compose.yml up -d
|
||||
$DOCKER_COMPOSE_COMMAND -f ./ghost/docker-compose.yml up --pull -d
|
||||
if [ $? -eq 0 ]; then
|
||||
print_success "Ghost started successfully."
|
||||
else
|
||||
@@ -174,7 +176,7 @@ start_services() {
|
||||
fi
|
||||
|
||||
echo "Starting immich..."
|
||||
$DOCKER_COMPOSE_COMMAND -f ./immich/docker-compose.yml up -d
|
||||
$DOCKER_COMPOSE_COMMAND -f ./immich/docker-compose.yml up --pull -d
|
||||
if [ $? -eq 0 ]; then
|
||||
print_success "Immich started successfully."
|
||||
else
|
||||
@@ -182,14 +184,50 @@ start_services() {
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Starting uptime kuma..."
|
||||
$DOCKER_COMPOSE_COMMAND -f ./uptime_kuma/docker-compose.yml up --pull -d
|
||||
if [ $? -eq 0 ]; then
|
||||
print_success "Uptime kuma started successfully."
|
||||
else
|
||||
print_error "failed to start Uptime kuma!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Starting croc..."
|
||||
$DOCKER_COMPOSE_COMMAND -f ./croc/docker-compose.yml up --pull -d
|
||||
if [ $? -eq 0 ]; then
|
||||
print_success "Croc started successfully."
|
||||
else
|
||||
print_error "failed to start Croc!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Starting caddy..."
|
||||
$DOCKER_COMPOSE_COMMAND -f ./caddy/docker-compose.yml up -d
|
||||
$DOCKER_COMPOSE_COMMAND -f ./caddy/docker-compose.yml up --pull -d
|
||||
if [ $? -eq 0 ]; then
|
||||
print_success "Caddy started successfully."
|
||||
else
|
||||
print_error "failed to start Caddy!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Starting watchtower..."
|
||||
$DOCKER_COMPOSE_COMMAND -f ./watchtower/docker-compose.yml up --pull -d
|
||||
if [ $? -eq 0 ]; then
|
||||
print_success "Watchtower started successfully."
|
||||
else
|
||||
print_error "failed to start Watchtower!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Starting stalwart..."
|
||||
$DOCKER_COMPOSE_COMMAND -f ./stalwart/docker-compose.yaml up --pull -d
|
||||
if [ $? -eq 0 ]; then
|
||||
print_success "Stalwart started successfully."
|
||||
else
|
||||
print_error "failed to start Stalwart!"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
stop_services() {
|
||||
@@ -301,6 +339,24 @@ stop_services() {
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Stopping uptime kuma..."
|
||||
$DOCKER_COMPOSE_COMMAND -f ./uptime_kuma/docker-compose.yml down
|
||||
if [ $? -eq 0 ]; then
|
||||
print_success "Uptime kuma stopped successfully."
|
||||
else
|
||||
print_error "failed to stop Uptime kuma!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Stopping croc..."
|
||||
$DOCKER_COMPOSE_COMMAND -f ./croc/docker-compose.yml down
|
||||
if [ $? -eq 0 ]; then
|
||||
print_success "Croc stopped successfully."
|
||||
else
|
||||
print_error "failed to stop Croc!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Stopping caddy..."
|
||||
$DOCKER_COMPOSE_COMMAND -f ./caddy/docker-compose.yml down
|
||||
if [ $? -eq 0 ]; then
|
||||
@@ -309,6 +365,24 @@ stop_services() {
|
||||
print_error "failed to stop Caddy!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Stopping watchtower..."
|
||||
$DOCKER_COMPOSE_COMMAND -f ./watchtower/docker-compose.yml down
|
||||
if [ $? -eq 0 ]; then
|
||||
print_success "Watchtower stopped successfully."
|
||||
else
|
||||
print_error "failed to stop Watchtower!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Stopping stalwart..."
|
||||
$DOCKER_COMPOSE_COMMAND -f ./stalwart/docker-compose.yaml down
|
||||
if [ $? -eq 0 ]; then
|
||||
print_success "Stalwart stopped successfully."
|
||||
else
|
||||
print_error "failed to stop Stalwart!"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
if [ $# -lt 1 ]; then
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
networks:
|
||||
caddy:
|
||||
name: caddy
|
||||
driver: bridge
|
||||
external: true
|
||||
|
||||
services:
|
||||
memos:
|
||||
image: neosmemo/memos:0.25
|
||||
container_name: memos
|
||||
volumes:
|
||||
- ./data/app:/var/opt/memos
|
||||
ports:
|
||||
- 5230:5230
|
||||
networks:
|
||||
- caddy
|
||||
17
memos/docker-compose.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
networks:
|
||||
caddy:
|
||||
name: caddy
|
||||
driver: bridge
|
||||
external: true
|
||||
|
||||
services:
|
||||
memos:
|
||||
image: neosmemo/memos:0.25
|
||||
restart: unless-stopped
|
||||
container_name: memos
|
||||
labels:
|
||||
- "com.centurylinklabs.watchtower.enable=true"
|
||||
volumes:
|
||||
- ./data/app:/var/opt/memos
|
||||
networks:
|
||||
- caddy
|
||||
@@ -12,20 +12,20 @@ networks:
|
||||
|
||||
services:
|
||||
prometheus:
|
||||
image: prom/prometheus:v3.5.0
|
||||
image: prom/prometheus:v3.7.2
|
||||
container_name: prometheus
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- prometheus
|
||||
- grafana
|
||||
- caddy
|
||||
command: "--config.file=/etc/prometheus/prometheus.yaml --storage.tsdb.retention.time=10d --storage.tsdb.retention.size=5GB"
|
||||
command: "--config.file=/etc/prometheus/prometheus.yaml --storage.tsdb.retention.time=10d --storage.tsdb.retention.size=15GB"
|
||||
volumes:
|
||||
- ./data/config/prometheus.yaml:/etc/prometheus/prometheus.yaml:ro
|
||||
- prometheus-data:/prometheus
|
||||
|
||||
node_exporter:
|
||||
image: quay.io/prometheus/node-exporter:v1.9.1
|
||||
image: quay.io/prometheus/node-exporter:v1.10.0
|
||||
container_name: node_exporter
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
@@ -37,7 +37,7 @@ services:
|
||||
- "/:/host:ro,rslave"
|
||||
|
||||
cadvisor:
|
||||
image: gcr.io/cadvisor/cadvisor:v0.49.1
|
||||
image: gcr.io/cadvisor/cadvisor:v0.52.1
|
||||
container_name: cadvisor
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
@@ -52,6 +52,7 @@ services:
|
||||
devices:
|
||||
- "/dev/kmsg:/dev/kmsg"
|
||||
command:
|
||||
- -docker_only
|
||||
- --disable_metrics=advtcp,cpu_topology,cpuset,hugetlb,memory_numa,process,referenced_memory,resctrl,sched,tcp,udp,percpu,disk,diskIO,oom_event,perf_event
|
||||
|
||||
volumes:
|
||||
|
||||
@@ -6,9 +6,11 @@ networks:
|
||||
|
||||
services:
|
||||
server:
|
||||
image: drakkan/sftpgo:v2.6.6
|
||||
image: drakkan/sftpgo:v2
|
||||
container_name: sftpgo
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "com.centurylinklabs.watchtower.enable=true"
|
||||
environment:
|
||||
- SFTPGO_COMMON_IDLE_TIMEOUT=${SFTPGO_COMMON_IDLE_TIMEOUT}
|
||||
- SFTPGO_COMMON_UPLOAD_MODE=${SFTPGO_COMMON_UPLOAD_MODE}
|
||||
|
||||
@@ -6,7 +6,7 @@ networks:
|
||||
|
||||
services:
|
||||
server:
|
||||
# image: yourselfhosted/slash:latest
|
||||
# image: yourselfhosted/slash:latest
|
||||
image: aykhans/slash:1.0.0-rc.0-e
|
||||
container_name: slash
|
||||
restart: unless-stopped
|
||||
|
||||
2
stalwart/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
/data/*
|
||||
!.gitkeep
|
||||
28
stalwart/docker-compose.yaml
Normal file
@@ -0,0 +1,28 @@
|
||||
networks:
|
||||
caddy:
|
||||
name: caddy
|
||||
driver: bridge
|
||||
external: true
|
||||
|
||||
services:
|
||||
stalwart:
|
||||
image: stalwartlabs/stalwart:v0.14
|
||||
container_name: stalwart
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
- "com.centurylinklabs.watchtower.enable=true"
|
||||
networks:
|
||||
- caddy
|
||||
ports:
|
||||
- "25:25"
|
||||
- "587:587"
|
||||
- "465:465"
|
||||
- "143:143"
|
||||
- "993:993"
|
||||
- "4190:4190"
|
||||
- "110:110"
|
||||
- "995:995"
|
||||
volumes:
|
||||
- ./data:/opt/stalwart
|
||||
- ../caddy/data/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/mail.aykhans.me/mail.aykhans.me.crt:/opt/stalwart/cert/mail.aykhans.me.pem
|
||||
- ../caddy/data/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/mail.aykhans.me/mail.aykhans.me.key:/opt/stalwart/cert/mail.aykhans.me.priv.pem
|
||||
1
uptime_kuma/.env.example
Normal file
@@ -0,0 +1 @@
|
||||
CADDY_DOMAIN=sub.example.com
|
||||
2
uptime_kuma/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
/data/*
|
||||
!.gitkeep
|
||||
0
uptime_kuma/data/.gitkeep
Normal file
20
uptime_kuma/docker-compose.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
networks:
|
||||
caddy:
|
||||
name: caddy
|
||||
driver: bridge
|
||||
external: true
|
||||
|
||||
services:
|
||||
uptime-kuma:
|
||||
image: louislam/uptime-kuma:2
|
||||
container_name: uptime_kuma
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./data/app:/app/data
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
networks:
|
||||
- caddy
|
||||
labels:
|
||||
caddy: ${CADDY_DOMAIN}
|
||||
caddy.reverse_proxy: "* {{upstreams 3001}}"
|
||||
com.centurylinklabs.watchtower.enable: true
|
||||
12
watchtower/docker-compose.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
services:
|
||||
watchtower:
|
||||
image: nickfedor/watchtower:latest
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
command:
|
||||
- "--label-enable"
|
||||
- "--cleanup"
|
||||
- "--rolling-restart"
|
||||
- "--interval"
|
||||
- "600" # 10 minutes
|
||||
@@ -2,6 +2,8 @@ services:
|
||||
wg-easy:
|
||||
image: ghcr.io/wg-easy/wg-easy:15
|
||||
container_name: wg-easy
|
||||
labels:
|
||||
- "com.centurylinklabs.watchtower.enable=true"
|
||||
networks:
|
||||
caddy:
|
||||
interface_name: wgeth1
|
||||
|
||||