Files
ansible/roles/docker/templates/starpunk-compose.yml.j2
T
PhilandClaude Opus 5.5 394f111162 Turn on StarPunk crossposting to GoToSocial (v2.1.0)
StarPunk 2.1.0 copies new notes to GoToSocial and keeps edits and
deletes in step. Token for the app "StarPunk crossposting" (scopes
write:statuses write:media) is in vault_starpunk.gotosocial_token; the
container reaches social. through Caddy (hairpin).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 12:46:56 -06:00

45 lines
1.7 KiB
Django/Jinja

services:
starpunk:
# Built and pushed by StarPunk's Gitea Actions workflow on vX.Y.Z tags
image: {{ subdomains.git }}/phil/starpunk:{{ starpunk_version }}
container_name: starpunk
restart: unless-stopped
extra_hosts:
- '{{ subdomains.pocketid }}:{{ docker.hairpin_ip }}'
- '{{ primary_domain }}:{{ docker.hairpin_ip }}'
- '{{ subdomains.social }}:{{ docker.hairpin_ip }}'
volumes:
- starpunk-data:/data
environment:
# Site configuration
SITE_URL: https://{{ subdomains.starpunk }}
SITE_NAME: StarPunk
SITE_AUTHOR: Mr Whiskers
SITE_DESCRIPTION: Starpunk instance
# Site owner identity (h-card source, Micropub "me")
ADMIN_ME: https://{{ primary_domain }}
SESSION_SECRET: {{ vault_starpunk.session_secret }}
# Admin login via Pocket ID (client "StarPunk"); only this user may log in.
# StarPunk issues Micropub tokens itself (ADR-064).
OIDC_ISSUER: https://{{ subdomains.pocketid }}
OIDC_CLIENT_ID: {{ vault_starpunk.pocketid.client_id }}
OIDC_CLIENT_SECRET: {{ vault_starpunk.pocketid.client_secret }}
OIDC_ADMIN_SUB: {{ starpunk_admin_sub }}
OIDC_PROVIDER_NAME: Pocket ID
# Crosspost new notes to GoToSocial (app "StarPunk crossposting",
# scopes write:statuses write:media)
GOTOSOCIAL_URL: https://{{ subdomains.social }}
GOTOSOCIAL_ACCESS_TOKEN: {{ vault_starpunk.gotosocial_token }}
# Production settings
FLASK_ENV: production
FLASK_DEBUG: 0
LOG_LEVEL: INFO
DEV_MODE: false
volumes:
# Existing volume (starpunk_starpunk-data) holds the posts and database
starpunk-data:
networks:
default:
external: true
name: {{ docker.network_name }}