add web
This commit is contained in:
@@ -0,0 +1,114 @@
|
||||
# Vortexi OSS
|
||||
|
||||
An open-source revival based off of the Syntax[.]eco source code.
|
||||
---
|
||||
|
||||
## Quick Start (Docker)
|
||||
|
||||
### 1. Run Setup
|
||||
```bash
|
||||
./setup.sh
|
||||
```
|
||||
This wizard will:
|
||||
- Ask for your domain name (or default to `localhost`) and replace any old domains throughout the project.
|
||||
- Generate a new RCC access key and copy over the settings JSON.
|
||||
### 2. Start the Stack
|
||||
```bash
|
||||
./start.sh
|
||||
```
|
||||
`./start.sh` runs `docker compose up --build`.
|
||||
|
||||
On first startup, the container automatically:
|
||||
- Generates all missing RSA 1024-bit, 2048-bit, and gameserver signing keys into `app/files/`
|
||||
- Waits for PostgreSQL and Redis to be ready
|
||||
- Runs `db.create_all()` to build all database tables
|
||||
- Creates an **Admin** user with full permissions and prints the username and generated password right in the console output
|
||||
|
||||
Once started, the site will be accessible on port `3003` (e.g. `http://localhost:3003`).
|
||||
|
||||
---
|
||||
|
||||
## Configuration & Environment Variables
|
||||
|
||||
All settings are configured inside the [`.env`](file:///.env) file (copied from [`.env.example`](file:///.env.example)).
|
||||
|
||||
Key settings:
|
||||
- `BASE_DOMAIN` - Your main domain (e.g. `yourdomain.com` or `localhost`).
|
||||
- `BASE_URL` - Full base URL (e.g. `https://www.yourdomain.com` or `http://localhost:3003`).
|
||||
- `RCC_ACCESS_KEY` - The access key used for RCCService and FFlags settings.
|
||||
- `USE_LOCAL_STORAGE` - Set to `True` to store and serve assets locally in `./download_cache` without needing an AWS S3 bucket.
|
||||
- `POSTGRES_USER` / `POSTGRES_PASSWORD` / `POSTGRES_DB` - Database credentials.
|
||||
- `FLASK_SESSION_KEY` - Session secret (auto-generated if left blank).
|
||||
- `CLOUDFLARE_TURNSTILE_SITE_KEY` / `CLOUDFLARE_TURNSTILE_SECRET_KEY` - For captcha verification on signup/login.
|
||||
- `DISCORD_BOT_TOKEN` / `DISCORD_CLIENT_ID` / `DISCORD_CLIENT_SECRET` - For Discord linking and bot functionality.
|
||||
- `MAILJET_APIKEY` / `MAILJET_SECRETKEY` - For email verification and password resets.
|
||||
|
||||
---
|
||||
|
||||
## Reverse Proxy Examples
|
||||
|
||||
You should run a reverse proxy in front of port `3003` for SSL and subdomains.
|
||||
|
||||
### Caddy
|
||||
```caddy
|
||||
yourdomain.com, *.yourdomain.com {
|
||||
reverse_proxy localhost:3003
|
||||
}
|
||||
```
|
||||
|
||||
### Nginx
|
||||
```nginx
|
||||
server {
|
||||
listen 80;
|
||||
server_name yourdomain.com *.yourdomain.com;
|
||||
|
||||
client_max_body_size 50M;
|
||||
|
||||
location / {
|
||||
proxy_pass http://127.0.0.1:3003;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Apache2
|
||||
```apache
|
||||
<VirtualHost *:80>
|
||||
ServerName yourdomain.com
|
||||
ServerAlias *.yourdomain.com
|
||||
ProxyPreserveHost On
|
||||
ProxyRequests Off
|
||||
|
||||
<Proxy *>
|
||||
Require all granted
|
||||
</Proxy>
|
||||
|
||||
ProxyPass / http://127.0.0.1:3003/
|
||||
ProxyPassReverse / http://127.0.0.1:3003/
|
||||
LimitRequestBody 209715200
|
||||
</VirtualHost>
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Helpful Commands
|
||||
|
||||
- **Stop containers:**
|
||||
```bash
|
||||
docker compose down
|
||||
```
|
||||
- **View live logs:**
|
||||
```bash
|
||||
docker compose logs -f web
|
||||
```
|
||||
- **Access Flask shell inside container:**
|
||||
```bash
|
||||
docker compose exec web flask shell
|
||||
```
|
||||
- **Run in local debug mode (without Docker):**
|
||||
```bash
|
||||
./debug.sh
|
||||
```
|
||||
Reference in New Issue
Block a user