docs: add comprehensive README with architecture, setup, and features
This commit is contained in:
parent
a7dd531403
commit
ae10dc0d34
1 changed files with 129 additions and 0 deletions
129
README.md
Normal file
129
README.md
Normal file
|
|
@ -0,0 +1,129 @@
|
||||||
|
# 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
|
||||||
|
* [Docker](https://docs.docker.com/get-docker/) & [Docker Compose](https://docs.docker.com/compose/)
|
||||||
|
|
||||||
|
### 2. Klon repository
|
||||||
|
```bash
|
||||||
|
git clone https://git.p20.dev/christian/el-puro.git
|
||||||
|
cd el-puro
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Konfiguration (.env)
|
||||||
|
Kopier eksempelfilen og tilpas dine indstillinger:
|
||||||
|
```bash
|
||||||
|
cp .env.example .env
|
||||||
|
```
|
||||||
|
|
||||||
|
Indhold i `.env`:
|
||||||
|
```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
|
||||||
|
```bash
|
||||||
|
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.
|
||||||
Loading…
Add table
Reference in a new issue