- renovate.json: gitea platform, weekly schedule on Monday, pins
ranges, manages docker-compose images + dockerfile + github-actions.
Critical-infra packages get extra labels for review.
- .forgejo/workflows/renovate.yml: runs Mondays 04:00 UTC, autodiscover
Richard/* so the same workflow covers both this repo and the Hugo
companion. Requires RENOVATE_TOKEN secret (instructions in README).
- .forgejo/workflows/trivy.yml: daily 05:00 UTC + on-push. Scans both
IaC configs in infrastructure/ and every image referenced in
docker-compose.yml for HIGH/CRITICAL CVEs (fixable only).
- Pin Traefik (3.6.7) and traefik-crowdsec-bouncer (0.5.0) so Renovate
has a baseline to bump.
The public blog at richardnixon.dev is fully served by the Hugo
companion repo (richardnixon.dev-hugo) since the cutover. This commit
drops everything Django-related from this repo:
- Containers stopped and removed (already done on the host):
platform-web, platform-celery, platform-celery-beat,
platform-frontend, platform-db, platform-redis.
- Volumes dropped: platform-db-data, platform-redis-data,
platform-static, platform-media (no backup; DB only held an empty draft).
- docker-compose.yml: removed all platform-* services, the
platform-internal network, and the postgres-exporter / redis-exporter
that only monitored the dropped DB/Redis pair.
- traefik/dynamic.yml: removed platform-api router and the
platform-api / platform-frontend service definitions.
- Source tree: deleted apps/, config/, docker/, frontend/, locale/,
templates/, media/, static/, requirements/, manage.py,
requirements.txt, conftest.py, pytest.ini.
- docs/development.md removed (was 100% Django dev guide).
- README and docs/deployment.md rewritten as infra-only references.
- Add blog-static (nginx:alpine) service backed by bind-mount from
/root/richardnixon.dev-hugo/public. Hugo blog now owns
richardnixon.dev/* via Traefik dynamic.yml (priority 100).
- Narrow platform-api (Django legacy) to /api, /admin, /static, /media
only; remove platform-frontend (Next.js) from routing.
- Add forgejo-runner service joining infrastructure_forgejo-internal
network, with bind-mount config + entrypoint. Allowed valid_volume:
/root/richardnixon.dev-hugo/public for CI deploys.
- Enable [actions] in Forgejo (FORGEJO__actions__ENABLED=true,
DEFAULT_ACTIONS_URL=https://code.forgejo.org).
- Add export_hugo management command (HTML+frontmatter dump for the
one-time content migration; left in tree for future re-runs).
- Update README and docs/deployment.md to reflect new public surface,
CI flow, and Forgejo clone URL.
- Add apps/README.md describing each Django app
- Add docs/deployment.md with step-by-step VPS deploy guide
- Add docs/development.md with local dev setup guide
- Reorganize .env.example by service with section comments
- Remove hardcoded fallback from EIRESCOPE_SECRET_KEY
- Pass SENTRY_DSN env var to platform-web container
- Split requirements.txt into base/dev/production
- Update Dockerfiles to use requirements/production.txt
- Create .dockerignore to reduce build context
- Add conftest.py with user fixtures
- Add tests: accounts models (9), blog views (4), contact views (1)
- Add sentry-sdk[django] with conditional init via SENTRY_DSN
- Create apps/core/ with health view checking DB and cache connections
- Register /health/ in config/urls.py (outside i18n_patterns)
- Add curl to Dockerfile.full for healthcheck support
- Add healthcheck blocks to platform-web and locflow-web in compose
- Replace deprecated allauth settings (ACCOUNT_AUTHENTICATION_METHOD,
ACCOUNT_EMAIL_REQUIRED, etc.) with ACCOUNT_LOGIN_METHODS and
ACCOUNT_SIGNUP_FIELDS
- Add API_URL env var and platform-internal network to platform-frontend
so Next.js SSR can reach Django backend internally instead of via
public domain (fixes getaddrinfo EAI_AGAIN errors)
- Add locflow-frontend service and CORS config for LocFlow
- Update traefik dynamic routing and env example
- Add Django Ninja API layer (apps/api/) with endpoints for blog, portfolio, contact, and home
- Add CORS support (django-cors-headers) for frontend-backend communication
- Create Next.js 15 frontend with App Router, compiled Tailwind CSS v4, and TypeScript
- Add frontend Docker container (Node 22 Alpine, standalone build)
- Update Traefik routing: /api, /admin, /media, /en, /pt-br -> Django; everything else -> Next.js
- Fix media file serving in production (re_path with django.views.static.serve)
- Make eirescope and locflow publicly accessible (remove Authentik middleware)
- Add API test suite (27 tests covering all endpoints)
- Add LocFlow and EireScope to architecture diagram and services table
- Add environment variables for LocFlow and EireScope
- Add LocFlow Django management commands
- Add rebuild commands for LocFlow and EireScope
- Add locflow-db and locflow-web services with isolated network
- Add Traefik routing with CrowdSec bouncer for locflow.richardnixon.dev
- Fix Docker provider network name from docker-migration_web to infrastructure_web
- Add LocFlow environment variables to .env.example
- Use /root/data/wp-content for WordPress runtime data
- Move custom security plugin to infrastructure/wp-plugins/
- Add UMAMI_WEBSITE_ID to .env.example
- Rename world to EmeraldRealms
- Add admin permissions for server operators
- Add uptime tracking with auto-updating endpoint
- Show online players with connection duration
- Add players section that displays when users connect
- Fix status page to parse version from API keywords
- Add adaliszk/valheim-server-monitoring for Prometheus metrics
- Enable Docker provider in Traefik for container discovery
- Add valheim-status route to dynamic.yml for SSL certificate
- Update Valheim dashboard with game-specific metrics:
- Players online, world day, world size
- Save & backup duration
- Player connections, random events
- Fix health check in valheim-status container
- Create valheim-status nginx container with status page
- Display server status, players online, world info
- Proxy API requests to Valheim STATUS_HTTP endpoint
- Configure Traefik routing for valheim.richardnixon.dev
- Show connection address with copy button
- Add Grafana dashboard for Valheim server monitoring
- Enable SUPERVISOR_HTTP and STATUS_HTTP for server management
- Track container metrics (CPU, memory, network, disk I/O)
- Include server logs panel via Loki
- Add internationalization support (PT-BR/EN) with URL prefixes
- Implement django-modeltranslation for multilingual content
- Add django-ckeditor-5 for rich text editing
- Implement two-factor authentication for admin
- Add Umami analytics event tracking
- Remove dashboards app (to be reimplemented later)
- Fix language switcher to use Django's set_language view