Ghost in einem Incus Container betreiben
So, dann fange ich mal an mit diesem Blog hier, wie ist der entstanden ? Zuinächst braucht man ein laufendes Incussystem, dass ist jetzt etwas aufwändig für diesen Post, mache ich vielleicht später nochmal.
Dann braucht man einen Container, in dem die Software laufen soll, ich machte es mir einfach und habe eine Dockerinstallation genommen, da muss man wenig konfigurieren. Erst mal einen Dockerhost anlegen (ich nehme Alpine dafür, geht auch mit Debian, Ubuntu, etc.)
incus launch images:alpine/edge ghostGanz wichtig, wenn man plant, Docker im lxc-Container laufen zu lassen, nesting setzen:
incus config set ghost security.nesting trueDann ein
incus shell ghostund wir sind im Alpinecontainer, hier installieren wir erst mal Docker
apk add docker docker-compose
service docker start
rc-update add dockerIch packe neue Dockersachen immer ins /opt Verzeichnis
cd /opt
mkdir ghost
cd ghostJetzt generieren wir ein docker-compose file, das den eigentlich ghost und eine Datenbank (mysql) enthält, das ist das schöne an Docker, solche zusamengesetzten Sachen werden im compose-file beschrieben und sind dort gut dokumentiert.
services:
ghost:
image: ghost:6-alpine
restart: always
ports:
- 2368:2368
environment:
# see https://ghost.org/docs/config/#configuration-options
database__client: mysql
database__connection__host: db
database__connection__user: root
database__connection__password: PASSWORT
database__connection__database: ghost
url: https://blog.frischux.de
#NODE_ENV: development
mail__from: blog@frischux.de
mail__transport: SMTP
mail__options__host: 172.23.2.4
mail__options__port: 465
mail__options__auth__user: MY_EMAIL_ADDRESS
mail__options__auth__pass: MY_EMAIL_PASSWORD
volumes:
- ./ghost-content:/var/lib/ghost/content
networks:
- ghost
db:
image: mysql:8.0
restart: always
environment:
MYSQL_ROOT_PASSWORD: PASSWORT
volumes:
- ./mysql-data:/var/lib/mysql
networks:
- ghost
networks:
ghost:
Wenn man das mit
docker compose up -d
startet, läüft ein lokales ghost auf Port 2368.
Das muss jetzt noch mit dem grossen weiten Internet verbunden werden, das mache ich allerdings woanders, also erst mal ein raus aus dem ghost container und hinein in den caddy container, und dort das Caddyfile in /etc/caddy erweitert:
blog.frischux.de {
reverse_proxy ghost.incus:2368
}
Und schon erstrahlt dieses Blog im Lichte des Internet ... Tada