Features: - Add LinkedIn OAuth integration and auto-posting functionality - Add scheduler service for automated post publishing - Add metadata field to generated_posts for LinkedIn URLs - Add privacy policy page for LinkedIn API compliance - Add company management features and employee accounts - Add license key system for company registrations Fixes: - Fix timezone issues (use UTC consistently across app) - Fix datetime serialization errors in database operations - Fix scheduling timezone conversion (local time to UTC) - Fix import errors (get_database -> db) Infrastructure: - Update Docker setup to use port 8001 (avoid conflicts) - Add SSL support with nginx-proxy and Let's Encrypt - Add LinkedIn setup documentation - Add migration scripts for schema updates Services: - Add linkedin_service.py for LinkedIn API integration - Add scheduler_service.py for background job processing - Add storage_service.py for Supabase Storage - Add email_service.py improvements - Add encryption utilities for token storage Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
69 lines
1.4 KiB
YAML
69 lines
1.4 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
linkedin-posts:
|
|
build: .
|
|
container_name: linkedin-posts
|
|
restart: unless-stopped
|
|
expose:
|
|
- "8001"
|
|
env_file:
|
|
- .env
|
|
environment:
|
|
- PYTHONPATH=/app
|
|
- PORT=8001
|
|
- VIRTUAL_HOST=linkedin.onyva.dev
|
|
- VIRTUAL_PORT=8001
|
|
- LETSENCRYPT_HOST=linkedin.onyva.dev
|
|
volumes:
|
|
- ./logs:/app/logs
|
|
healthcheck:
|
|
test: ["CMD", "python", "-c", "import httpx; httpx.get('http://localhost:8001/login', timeout=5)"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 10s
|
|
networks:
|
|
- proxy-network
|
|
|
|
nginx-proxy:
|
|
image: nginxproxy/nginx-proxy
|
|
container_name: nginx-proxy
|
|
restart: unless-stopped
|
|
ports:
|
|
- "80:80"
|
|
- "443:443"
|
|
environment:
|
|
- DEFAULT_HOST=linkedin.onyva.dev
|
|
volumes:
|
|
- /var/run/docker.sock:/tmp/docker.sock:ro
|
|
- certs:/etc/nginx/certs
|
|
- html:/usr/share/nginx/html
|
|
- vhost:/etc/nginx/vhost.d
|
|
networks:
|
|
- proxy-network
|
|
|
|
acme-companion:
|
|
image: nginxproxy/acme-companion
|
|
container_name: acme-companion
|
|
restart: unless-stopped
|
|
volumes_from:
|
|
- nginx-proxy
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
|
- acme:/etc/acme.sh
|
|
environment:
|
|
- DEFAULT_EMAIL=ruben.fischer@onyva.de
|
|
networks:
|
|
- proxy-network
|
|
|
|
networks:
|
|
proxy-network:
|
|
driver: bridge
|
|
|
|
volumes:
|
|
certs:
|
|
html:
|
|
vhost:
|
|
acme:
|