33SuperStack uses Docker, so make sure [ Docker is
44installed] ( https://docs.docker.com/get-docker/ ) before you begin.
55
6- ## 1. Clone SuperStack
6+ ## 1. Get SuperStack
77
8- ``` sh
9- git clone https://github.com/explodinglabs/superstack myapp
10- cd myapp
11- ```
8+ ### Option 1: Use the Template (Recommended)
129
13- <details >
14- <summary >Click here to see how to change this clone to point "origin" to your own hosted repository (Recommended)</summary >
10+ The easiest way to get started:
1511
16- Rename "origin" to "upstream":
12+ 1 . Click [ Use this
13+ template] ( https://github.com/explodinglabs/superstack/generate ) on GitHub.
14+ 2 . Create a new repository (e.g. ` myapp ` ) from the template.
15+ 3 . Clone it to your machine:
1716
1817``` sh
19- git remote rename origin upstream
18+ git clone https://github.com/yourname/myapp.git
19+ cd myapp
2020```
2121
22- This way you can still upgrade to a more recent SuperStack with:
23-
24- ``` sh
25- git pull upstream main
26- ```
22+ ### Option 2: Clone and Track Upstream (Advanced)
2723
28- Add your own code repository :
24+ If you want to keep SuperStack’s Git history and pull upstream changes later :
2925
3026``` sh
27+ git clone https://github.com/explodinglabs/superstack.git myapp
28+ cd myapp
29+ git remote rename origin upstream
3130git remote add origin https://github.com/yourname/myapp
3231```
3332
34- Now you can pull/push to your own repo as normal :
33+ You can now pull upstream changes with :
3534
3635``` sh
37- git pull
38- git push origin head
36+ git pull upstream main
3937```
4038
41- <h3 >Why not just fork SuperStack?</h3 >
42-
43- Because you can't make a fork private.
44-
45- <h3 >Why not make SuperStack a template repo?</h3 >
46-
47- Because then you can't pull from upstream SuperStack.
48-
49- </details >
50-
5139## 2. Configure Environment Variables
5240
5341Copy the example file:
@@ -56,8 +44,8 @@ Copy the example file:
5644cp example.env .env
5745```
5846
59- > ⚠️ The .env file is for local development only. For remote deployments,
60- > set environment variables using CI/CD or inline in the ` docker compose up ` command (be sure to avoid saving secrets in shell history) .
47+ > ⚠️ ** The .env file is for local development only.** Don't store real secrets
48+ > in production — use CI/CD environment variables or a secrets manager .
6149
6250## 3. Start the Stack
6351
@@ -67,19 +55,20 @@ docker compose up -d
6755
6856That's it – your backend is live.
6957
70- You can now open [ localhost:8000/openapi/] ( http://localhost:8000/openapi/ )
71- to explore your API.
58+ You can now open
59+ [ http://localhost:8000/openapi/ ] ( http://localhost:8000/openapi/ ) to explore
60+ your API.
7261
7362---
7463
7564## 🧩 What Just Happened?
7665
7766SuperStack automatically:
7867
79- - Starts a fresh ** Postgres** database
80- - Applies initial ** migrations**
81- - Launches ** PostgREST** and ** Swagger UI**
82- - Serves everything through ** Caddy**
68+ 1 . Starts a fresh Postgres database
69+ 2 . Applies initial migrations
70+ 3 . Launches PostgREST and Swagger UI
71+ 4 . Serves everything through Caddy
8372
8473``` mermaid
8574flowchart TD
@@ -90,14 +79,33 @@ flowchart TD
9079
9180> 💡 Only Caddy exposes a port – all services are routed through it.
9281
93- ## Nuke everything
82+ ## Project Structure
9483
95- To wipe your stack and start clean:
84+ ```
85+ 📁 bin/ → Helper scripts (e.g. wrappers for CLI tools)
86+ 📁 caddy/ → Custom Caddy configuration and certificates
87+ 📁 docs/ → Markdown files for SuperStack documentation
88+ 📁 postgres/ → SQL migrations and configuration of the postgres container
89+ 📄 compose.yaml → Main Docker Compose config
90+ 📄 compose.override.yaml → Optional local overrides (development only)
91+ 📄 example.env → Example environment variables — copy to `.env`
92+ 📄 LICENSE → License file (MIT)
93+ 📄 logo.png → SuperStack logo for README/docs
94+ 📄 mkdocs.yml → MkDocs configuration for documentation site
95+ 📄 README.md → Overview and quick start for the repository
96+ ```
97+
98+ ## 🔄 Resetting
99+
100+ If you want to start fresh:
96101
97102``` sh
98103docker compose down --volumes
104+ docker compose up -d
99105```
100106
107+ This will wipe your database and re-run all migrations from scratch.
108+
101109## ➕ What's Next?
102110
103111👉 [ Create your database schema with migrations] ( migrations.md )
0 commit comments