Compare commits

...

4 Commits

Author SHA1 Message Date
1de0cb3d7a Update glance home page 2025-04-28 04:45:42 +04:00
0467abeb28 Update compose and env files 2025-04-27 22:35:22 +00:00
a42bd5b5aa Update ghost compose file 2025-04-28 01:49:21 +04:00
e67e637d0d Add ghost 2025-04-28 01:42:12 +04:00
10 changed files with 87 additions and 0 deletions

View File

@ -27,6 +27,7 @@ Edit the generated `.env` files to fill in the required fields:
- `./vaultwarden/.env`
- `./wg_easy/.env`
- `./blinko/.env`
- `./ghost/.env`
- `./caddy/.env`
- `./caddy/Caddyfile.private`

View File

@ -37,3 +37,8 @@ GLANCE_CRT=
GLANCE_KEY=
GLANCE_USERNAME=
GLANCE_PASSWORD=
############# Ghost #############
GHOST_DOMAIN=
GHOST_CRT=
GHOST_KEY=

View File

@ -139,6 +139,24 @@
}
}
############## 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-*
}
}
import Caddyfile.private

7
ghost/.env.example Normal file
View File

@ -0,0 +1,7 @@
URL=
MAIL_HOST=
MAIL_PORT=465
MAIL_SECURE=true
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_FROM=

2
ghost/.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
/data/*
!.gitkeep

0
ghost/data/.gitkeep Normal file
View File

31
ghost/docker-compose.yml Normal file
View File

@ -0,0 +1,31 @@
networks:
caddy:
name: caddy
driver: bridge
external: true
services:
ghost:
image: ghost:5-alpine
container_name: ghost
restart: unless-stopped
networks:
- caddy
environment:
# DB
database__client: sqlite3
database__connection__filename: content/data/ghost.db
# App
NODE_ENV: production
url: ${URL}
# Mail
mail__options__host: ${MAIL_HOST}
mail__options__port: ${MAIL_PORT}
mail__options__secure: ${MAIL_SECURE}
mail__options__auth__user: ${MAIL_USERNAME}
mail__options__auth__pass: ${MAIL_PASSWORD}
mail__from: ${MAIL_FROM}
mail__options__service: SMTP
mail__transport: SMTP
volumes:
- ./data:/var/lib/ghost/content

BIN
glance/assets/ghost.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

View File

@ -34,6 +34,9 @@
- title: wg.aykhans.me
url: https://wg.aykhans.me/
icon: /assets/wireguard.png
- title: aykhans.me
url: https://aykhans.me/
icon: /assets/ghost.png
- type: docker-containers
cache: 0s
@ -57,6 +60,7 @@
- pocketbase/pocketbase
- prometheus/prometheus
- grafana/grafana
- TryGhost/Ghost
- size: full
widgets:

19
main.sh
View File

@ -61,6 +61,7 @@ generate_env_files() {
cp --update=none ./caddy/.env.example ./caddy/.env
cp --update=none ./glance/.env.example ./glance/.env
cp --update=none ./blinko/.env.example ./blinko/.env
cp --update=none ./ghost/.env.example ./ghost/.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
@ -162,6 +163,15 @@ start_services() {
exit 1
fi
echo "Starting ghost..."
$DOCKER_COMPOSE_COMMAND -f ./ghost/docker-compose.yml up -d
if [ $? -eq 0 ]; then
print_success "Ghost started successfully."
else
print_error "failed to start Ghost!"
exit 1
fi
echo "Starting caddy..."
$DOCKER_COMPOSE_COMMAND -f ./caddy/docker-compose.yml up -d
if [ $? -eq 0 ]; then
@ -263,6 +273,15 @@ stop_services() {
exit 1
fi
echo "Stopping ghost..."
$DOCKER_COMPOSE_COMMAND -f ./ghost/docker-compose.yml down
if [ $? -eq 0 ]; then
print_success "Ghost stopped successfully."
else
print_error "failed to stop Ghost!"
exit 1
fi
echo "Stopping caddy..."
$DOCKER_COMPOSE_COMMAND -f ./caddy/docker-compose.yml down
if [ $? -eq 0 ]; then