Files
omarandClaude Opus 4.8 5f4271b747
CI / validate (push) Successful in 41s
CI / images (push) Failing after 5s
Initial implementation: proxy checker panel + subscription system
Full stack per GOAL.md / TODO.md:
- checker (Go): fetch sources, canonicalize/dedup (whitelist+sort, & fixes),
  validity check (connect+latency+speed gates), geoip by exit IP, session model
  ("only working / last completed session"), global lock, manual run/stop,
  Telegram start/finish notifications. Reuses tessero-checker dialers
  (vless/vmess/trojan/ss), upstream parser, geoip, fetcher.
- api (Go): admin auth (single operator), dashboard stats, proxies
  list/filter/export/bulk, subscriptions CRUD, sources CRUD, settings, checker
  control, and dynamic public /sub endpoints with unique_ips + plain/base64/
  clash/singbox rendering.
- frontend (React+Vite+TS+Tailwind): telemetry-console SPA — Dashboard, Proxies,
  Subscriptions, Settings.
- postgres schema, docker-compose (postgres/checker/api/web-nginx), Dockerfiles,
  Gitea Actions CI.

Verified end-to-end via Docker: pipeline, all sub formats, unique_ips collapse,
and all four panel tabs (Playwright).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014TtR4PP2JM9KadaBkhPGAE
2026-07-02 01:02:00 +03:00

22 lines
592 B
Bash

# Copy to .env and adjust. `docker compose up -d --build` reads this file.
# --- PostgreSQL ---
POSTGRES_USER=perchik
POSTGRES_PASSWORD=change-me-db
POSTGRES_DB=perchik
# --- Admin panel (single operator) ---
ADMIN_USER=admin
ADMIN_PASSWORD=change-me-admin
# HMAC key that signs session tokens — use a long random string.
SESSION_SECRET=change-me-to-a-long-random-secret
# --- Runtime ---
LOG_LEVEL=info
# Host port the panel is served on (http://localhost:8088 by default).
WEB_PORT=8088
# --- Image tagging (used by CI / registry pushes) ---
# REGISTRY=git.qomar.pw/omar
# TAG=latest