Infrastruktur: - CT 113 auf pve-hetzner erstellt (Docker, Tailscale) - Forgejo-Repo redax-wp angelegt Code (Sprint 2): - docker-compose.yml: wordpress + db + redax-web - .env.example mit allen Variablen - database.py: articles, feeds, feed_items, prompts, settings - wordpress.py: WP REST API Client (create/update post, media upload, Yoast SEO) - rss_fetcher.py: Feed-Import, Blacklist, Teaser-Modus, KI-Rewrite - app.py: Flask Dashboard, Scheduler (publish/rss/briefing), alle API-Routen - templates: base, login, index (Zwei-Spalten-Editor), feeds, history, prompts, settings, hilfe - README.md + .gitignore Made-with: Cursor
57 lines
1.2 KiB
YAML
57 lines
1.2 KiB
YAML
services:
|
|
|
|
db:
|
|
image: mysql:8.0
|
|
container_name: redax-db
|
|
restart: unless-stopped
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
|
|
MYSQL_DATABASE: ${MYSQL_DATABASE}
|
|
MYSQL_USER: ${MYSQL_USER}
|
|
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
|
|
volumes:
|
|
- ./data/mysql:/var/lib/mysql
|
|
networks:
|
|
- redax-internal
|
|
|
|
wordpress:
|
|
image: wordpress:6.7-apache
|
|
container_name: redax-wordpress
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- db
|
|
environment:
|
|
WORDPRESS_DB_HOST: db:3306
|
|
WORDPRESS_DB_NAME: ${MYSQL_DATABASE}
|
|
WORDPRESS_DB_USER: ${MYSQL_USER}
|
|
WORDPRESS_DB_PASSWORD: ${WORDPRESS_DB_PASSWORD}
|
|
volumes:
|
|
- ./data/wordpress:/var/www/html
|
|
networks:
|
|
- redax-internal
|
|
- redax-public
|
|
|
|
web:
|
|
build:
|
|
context: ./src
|
|
dockerfile: Dockerfile.web
|
|
container_name: redax-web
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- wordpress
|
|
- db
|
|
env_file: .env
|
|
volumes:
|
|
- ./data/db:/data
|
|
- ./logs:/logs
|
|
ports:
|
|
- "8080:8080"
|
|
networks:
|
|
- redax-internal
|
|
- redax-public
|
|
|
|
networks:
|
|
redax-internal:
|
|
driver: bridge
|
|
redax-public:
|
|
driver: bridge
|