Z User 7166c51680 fix: pass giteaId (Dokploy Gitea integration ID) when saving Gitea provider
Without giteaId, Dokploy can't authenticate with Gitea to clone repos.
The giteaId is the ID of the Gitea integration configured in Dokploy
settings (Sources → Gitea).

Added DOKPLOY_GITEA_ID env var to pass this ID from environment.
The provisioning flow now: saveGiteaProvider({ giteaId: config.giteaId })
2026-10-29 21:48:25 +00:00
2026-10-26 12:34:42 +00:00

AOS — Agency Operating System

Self-hosted platform for German software agencies. Lead → Deal → Quote → Project → Invoice → License → Renewal. GoBD-compliant accounting (SKR04, EÜR, UStVA, DATEV). Client Portal. MCP Server for Claude Code.

Quick Start (Docker)

# 1. Clone
git clone https://github.com/cetinmustafa83/aos.git
cd aos

# 2. Configure
cp .env.example .env
# Edit .env: set ENCRYPTION_KEY, AUTH_SECRET (openssl rand -base64 32)

# 3. Build + Run
docker compose up -d

# 4. Seed (first time)
docker exec aos-app npx prisma db push --accept-data-loss
docker exec aos-app node -e "require('./src/lib/seed')" # or: docker exec aos-app bun run src/lib/seed.ts

# 5. Open
# https://localhost

Quick Start (Development)

# 1. Clone
git clone https://github.com/cetinmustafa83/aos.git
cd aos

# 2. Install
bun install

# 3. Database
bun run db:push
bun run src/lib/seed.ts

# 4. Start
bun run dev
# → http://localhost:3000

Claude Code / MCP

The .mcp.json at repo root enables auto-detection. After seeding, the pre-built admin token works:

# Seed creates the token automatically
bun run src/lib/seed.ts

# Token: aos_admin_seed_token_for_claude_code_2026
# 29 MCP tools (16 read + 13 write) — full agency management

See CLAUDE.md for the complete 29-tool reference with usage examples.

Architecture

aos/
  src/
    app/
      api/aos/         # 30+ internal API routes
      api/v1/          # Public REST API (scoped tokens)
      api/mcp/         # MCP Server (29 JSON-RPC tools)
      api/health/      # Health check
    components/aos/     # 23 views + client portal
    lib/               # Shared logic (db, format, i18n, api-auth, webhook)
  prisma/              # 39 models (SQLite dev, PostgreSQL prod)
  deploy/              # Docker, backup, restore scripts
  .mcp.json            # Claude Code auto-detection
  CLAUDE.md            # Project instructions + MCP reference
  Dockerfile           # Multi-stage production build
  docker-compose.yml   # app + backup + caddy

Modules

Module Features
Dashboard KPIs, pipeline funnel, onboarding checklist
CRM Kanban pipeline, companies, persons, CSV import
Leads Finder Evidence-based audits, AI explanation
Angebote Quotes → accept → project → invoice
Projekte Tasks, time tracking, budgets, task comments
Zeiterfassung Weekly timesheet, PM lock (GoBD)
Support Tickets, AI summary/reply, SLA timers
Lizenzen Issued licenses + renewal register
Verträge Werkvertrag, AVV, NDA, SLA, e-signature
Ausgaben Billable, recurring, DATEV export
Finanzen Invoices, E-Rechnung, gapless numbering
Wiederkehrend Recurring invoice scheduler + license suspend
Buchhaltung SKR04, UStVA, EÜR, Bankabgleich, Mahnwesen
Finanzamt Belege, Pauschalen, Anlagen/AfA, Kassenbuch
Fristen Unified deadline calendar (iCal feed)
Reporting Pipeline, utilization, MRR/ARR
Wissensdatenbank Versioned articles, AI drafting
API & Webhooks Scoped tokens, HMAC webhooks, OpenAPI
Datenverwaltung DSGVO Art. 15/20 export, Art. 30 inventory
Client Portal Project-scoped, approvals with IP evidence
Einstellungen Typed settings, i18n (DE/EN/TR)
Setup-Wizard 7-step guided installer

Compliance (Germany/EU)

  • GoBD: Festschreibung (SHA-256 hash chain), immutable Buchungssätze, 8/6 year retention
  • DSGVO: Art. 15/17/20/30, consent log, data export with checksum
  • E-Rechnung: ZUGFeRD/XRechnung (EN 16931)
  • SKR04: Doppelte Buchführung, Saldenliste, DATEV EXTF export
  • UStVA: Kennzahlen 81/86/66/83/65/37, ELSTER XML
  • AfA: GWG (§ 6 Abs. 2), Sammelposten (§ 6 Abs. 2a), lineare AfA (§ 7)
  • Kassenbuch: § 146 AO, § 22 UStG
  • Pauschalen: EStG § 4 Abs. 5, § 9 Abs. 1

Backup & Restore

# Backup (creates timestamped .db + .sha256)
./deploy/backup.sh

# Restore (verifies checksum, backs up current DB)
./deploy/restore.sh /path/to/aos_20261027_030000.db

Docker backup runs automatically daily at 03:00.

License

Proprietary. © Nordlicht Digital GmbH.

S
Description
No description provided
Readme
71 MiB
0 Stars 1 Watchers 0 Forks
Languages
HTML 37.5%
TypeScript 29.6%
Python 19.9%
JavaScript 6%
CSS 3.3%
Other 3.7%