No description
  • Go 51.6%
  • Vue 31.9%
  • JavaScript 11.2%
  • CSS 4.1%
  • Dockerfile 0.7%
  • Other 0.5%
Find a file
meliora 0a1b2d1551
All checks were successful
docker-build / build (push) Successful in -2s
feat: updated metrics
2026-07-22 04:27:50 +02:00
.forgejo/workflows Feat: Added ci 2026-07-02 06:59:38 +02:00
backend feat: updated metrics 2026-07-22 04:27:50 +02:00
frontend Feat: Update auth 2026-07-08 13:26:33 +02:00
.gitignore Feat; Updated forms and hardening backend 2026-07-02 18:58:40 +02:00
compose.yml Feat: Initial commit 2026-07-02 00:34:18 +02:00
LICENSE Feat: Initial commit 2026-07-02 00:34:18 +02:00
README.md Feat: Update auth 2026-07-08 13:26:33 +02:00

POL Account Management

Pol Manager is a simple Account manager for Playonline Accounts for multiboxers or users who want to keep their login info stored securely.

It's based on a Go backend service and Postgres for database storage. The webpage interface is built using Vue3. All information is kept encrypted in the database.

PlayOnline passwords are encrypted at rest. In Vanaportal deployments, users authenticate through the Vanaportal gateway and PolManager receives a short-lived internal identity token. Local legacy email/password auth is still available for development.

API

  • Health check: http://localhost:3000/api/v1/health
  • Accounts are available through the gateway at /api/v1/polmanager/accounts.
  • POL passwords are retrieved through /api/v1/polmanager/accounts/{id}/pol-password after role, identity, ownership, and rate-limit checks.
  • Gateway auth uses the Vanaportal vp_access cookie. Direct local auth still uses an HttpOnly session cookie plus a CSRF token cookie.
  • Set INTERNAL_IDENTITY_PUBLIC_KEY_PEM to the gateway public key in deployed PolManager so it can verify internal identity tokens.

Database Layout

  • app_users stores local user identities and maps Vanaportal users through vanaportal_user_id.
  • accounts stores PlayOnline account metadata with a user_id owner, plus AES-GCM encrypted POL password data, so each user only sees and mutates their own accounts.