Production 🛠️ The Idle Game
Find a file
2026-10-15 18:17:21 +02:00
backend feat(progression): add unit milestones, multi-tiered trophies, buy multipliers and offshore perk shop 2026-10-15 18:17:21 +02:00
frontend feat(progression): add unit milestones, multi-tiered trophies, buy multipliers and offshore perk shop 2026-10-15 18:17:21 +02:00
nginx feat: initial commit for El Puro idle game with Docker stack, honeypot auth, and mobile OS UI 2026-10-15 15:26:08 +02:00
.env.example feat: initial commit for El Puro idle game with Docker stack, honeypot auth, and mobile OS UI 2026-10-15 15:26:08 +02:00
.gitignore feat: initial commit for El Puro idle game with Docker stack, honeypot auth, and mobile OS UI 2026-10-15 15:26:08 +02:00
docker-compose.yml feat: initial commit for El Puro idle game with Docker stack, honeypot auth, and mobile OS UI 2026-10-15 15:26:08 +02:00
README.md docs: add comprehensive README with architecture, setup, and features 2026-10-15 15:29:40 +02:00

EL PURO

"99.1% Pure. Zero Compromise."

El Puro er et mobil-optimeret incremental/idle-spil stylet som en hemmelig, krypteret burner phone (SilkNet OS v3.2). Spillet er skabt til hurtige mikro-sessioner (30 sekunder til 3 minutter), hvor du opbygger et undergrundsimperium fra en lille cannabis-plante til et globalt syntetisk kartel.

Spillet kører som en selvstændig Docker Compose stack med en lynhurtig Python FastAPI backend, SQLite database og en Nginx reverse-proxy.


📱 Nøglefunktioner

  • Burner Phone Interface: Mørkt OLED-design med monospaced taktiske datafonte (JetBrains Mono), statuslinje med Police Heat meter og 4 touch-venlige bund-tabs:
    • ⚗️ Lab: Manuel høst/syntese, hyring af laboranter og opskriftsblanding.
    • 💼 Streets: Dealer-netværk og Designer Cocktails (kombination af stoffer som f.eks. Calvin Klein, Speedball og Candy Flip).
    • 🕸️ Network (Talent-Træ): Forgrenet spindelvæv med 3 distinkte stier: Path of the Chemist, Path of the Kingpin og Path of the Smuggler.
    • 🏦 Offshore: Hvidvaskning af snavsede kontanter til Clean Bonds (Prestige-reset med permanente multiplikatorer).
  • 10 Progressive Stof-Tiers: Cannabis, Magic Mushrooms, Adderall, Meth (Blue Sky), MDMA, Ketamin, Kokain (Pure White), Crack, Heroin og Fentanyl.
  • Police Heat & Raids: Hurtige quick-time hændelser, hvor du kan bestikke politiet, gemme dit lager eller løbe risikoen for 2x profit.
  • Simpelt Honeypot Brugersystem: Kun brugernavn og password. Ingen e-mail, ingen 2FA. Inkluderer en usynlig honeypot-fælde (website_hp), der automatisk afviser bot-registreringer.
  • Cloud & Offline Sync: Spillet gemmer lokalt og synkroniserer automatisk til serveren hvert 5. sekund.

🛠️ Arkitektur & Teknologistak

                          ┌────────────────────────┐
                          │   Browser / Mobil UI   │
                          │   (HTML5, CSS, JS)     │
                          └───────────┬────────────┘
                                      │ HTTP / :HOST_PORT
                                      ▼
                          ┌────────────────────────┐
                          │      Nginx Proxy       │
                          │   (Reverse Proxy)      │
                          └─────┬────────────┬─────┘
                                │            │
                    / (Statiske aktiver)     │ /api/*
                                │            ▼
                                │    ┌───────────────┐
                                │    │ Python FastAPI│
                                │    │ (JWT & Auth)  │
                                │    └───────┬───────┘
                                │            │
                                ▼            ▼
                        [frontend/]     [SQLite DB]
                                      (/app/data/elpuro.db)

🚀 Hurtig Start med Docker Compose

1. Forudsætninger

2. Klon repository

git clone https://git.p20.dev/christian/el-puro.git
cd el-puro

3. Konfiguration (.env)

Kopier eksempelfilen og tilpas dine indstillinger:

cp .env.example .env

Indhold i .env:

# Port på værtsmaskinen hvor spillet tilgås
HOST_PORT=8080

# Offentligt domænenavn (valgfrit til vhost-routing)
DOMAIN_NAME=localhost

# Hemmelig nøgle til JWT signering
SECRET_KEY=el_puro_secret_key_change_in_production_jwt_99_1_pure

4. Start stakken

docker compose up -d --build

Spillet er nu tilgængeligt i din browser på:
👉 http://localhost:8080 (eller den port du valgte i .env).


📁 Projektstruktur

.
├── .env.example           # Skabelon til miljøvariable
├── docker-compose.yml     # Docker Compose opsætning
├── backend/               # FastAPI backend
│   ├── Dockerfile
│   ├── requirements.txt
│   ├── main.py            # API endpoints & logik
│   ├── auth.py            # Bcrypt & JWT autentificering
│   ├── database.py        # SQLite databaseinitialisering
│   └── models.py          # Pydantic schemas (med honeypot trap)
├── frontend/              # Mobil-optimeret frontend
│   ├── index.html         # SilkNet OS layout og modals
│   ├── css/
│   │   └── style.css      # Dark OLED tema og responsivt layout
│   └── js/
│       ├── api.js         # API klient & sky-synkronisering
│       ├── config.js      # 10 stoffer, opskrifter, skills og achievements
│       └── game.js        # Spilmotor, loop, heat og mechanics
└── nginx/
    └── default.conf.template # Nginx reverse proxy konfiguration

🔒 Honeypot Sikkerhed

Registrerings-endpointet (POST /api/auth/register) inkluderer en skjult website_hp parameter.

  • Menneskelige brugere ser ikke feltet og lader det stå tomt.
  • Automatiserede bots udfylder formularen blindt, hvorefter serveren afviser anmodningen med 400 Bad Request. Dette holder databasen fri for falske konti uden behov for Captcha.

📜 Licens

Privat projekt tilhørende Christian. Alle rettigheder forbeholdes.