You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: improve Docker Hub README clarity and consistency
Align install instructions with manifest.build/docs: replace "setup
wizard" with "sign up" language, clarify that the first account becomes
admin, add "30 seconds to boot" note. Break the review-before-running
section into separate copyable commands inside a collapsible card.
Make Option 2 and Option 3 more explicit about what the user should do.
| Architecture | Your Manifest instance forwards to your providers | Cloud proxy. All traffic goes through their servers |
54
+
| Cost | Free | 5% fee on every API call |
55
+
| Source code | MIT, fully open | Proprietary |
56
+
| Data privacy | Self-hosted, no middleman | Prompts and responses pass through a third party |
57
+
| Transparency | Open scoring. You see why a model was chosen | No visibility into routing decisions |
58
58
59
59
---
60
60
61
61
## Installation
62
62
63
-
Three paths, ordered from fastest to most hands-on. All three end in the same place: a running stack that walks you through the **setup wizard**at [http://localhost:3001](http://localhost:3001)to create your admin account.
63
+
Three paths, ordered from fastest to most hands-on. All three end in the same place: a running stack at [http://localhost:3001](http://localhost:3001)where you sign up. The first account you create becomes the admin. No demo credentials are pre-seeded.
64
64
65
65
> **Heads up on network binding.** The bundled compose file binds port 3001 to `127.0.0.1` only, so the dashboard is reachable on the host machine but not over the LAN. See [Custom port](#custom-port) to expose it beyond localhost.
One command. The script downloads `docker/docker-compose.yml` and `docker/.env.example`, writes a fresh `BETTER_AUTH_SECRET` into `.env`, brings up the stack, and waits for the healthcheck to go green.
69
+
One command. The installer downloads the compose file, generates a secret, and brings up the stack. Give it about 30 seconds to boot.
Flags: `--dir <path>` (install into a custom directory, defaults to `./manifest`), `--dry-run` (print what would happen without touching anything), `--yes` (skip the confirmation prompt).
96
+
</details>
97
+
98
+
Useful flags: `--dir <path>` to install elsewhere, `--dry-run` to preview, `--yes` to skip the confirmation prompt.
2.Generate a secret and paste it into the `BETTER_AUTH_SECRET=` line in `.env`:
112
+
2.Open `.env` in your editor and set `BETTER_AUTH_SECRET` to a random string. You can generate one with:
98
113
99
114
```bash
100
115
openssl rand -hex 32
101
116
```
102
117
103
-
(Optional: to use a stronger database password, set BOTH `POSTGRES_PASSWORD` and `DATABASE_URL` in `.env` — they must agree, and any special characters in the password need to be percent-encoded in the URL.)
118
+
(Optional: to use a stronger database password, set BOTH `POSTGRES_PASSWORD` and `DATABASE_URL` in `.env`, they must agree, and any special characters in the password need to be percent-encoded in the URL.)
104
119
105
-
3. Start it:
120
+
3. Start the stack:
106
121
107
122
```bash
108
123
docker compose up -d
109
124
```
110
125
111
-
4. Open [http://localhost:3001](http://localhost:3001) and complete the setup wizard.
126
+
Give it about 30 seconds to boot.
127
+
128
+
4. Open [http://localhost:3001](http://localhost:3001) and sign up. The first account you create becomes the admin.
### Option 3: Docker Run (bring your own PostgreSQL)
121
138
122
-
If you already have PostgreSQL running, pick the command for your shell.
139
+
If you already have PostgreSQL running, replace `user`, `pass`, and `host` with your actual database credentials, then run this in your terminal:
123
140
124
141
<detailsopen>
125
142
<summary><strong>macOS / Linux (bash, zsh)</strong></summary>
@@ -170,7 +187,7 @@ docker run -d ^
170
187
171
188
</details>
172
189
173
-
`AUTO_MIGRATE=true` runs TypeORM migrations on first boot. Then visit[http://localhost:3001](http://localhost:3001) and complete the setup wizard to create your admin account.
190
+
`AUTO_MIGRATE=true` runs database migrations on first boot. Then open[http://localhost:3001](http://localhost:3001) and sign up. The first account you create becomes the admin.
By default the compose file binds port 3001 to `127.0.0.1` only — the dashboard is reachable from the host but not from other machines on the network. To expose it on the LAN:
228
+
By default the compose file binds port `3001` to `127.0.0.1` only. The dashboard is reachable from the host but not from other machines on the network. To expose it on the LAN:
212
229
213
230
1. Edit `docker-compose.yml` and change the `ports` line from `"127.0.0.1:3001:3001"` to `"3001:3001"`.
214
-
2. In `.env`, set `BETTER_AUTH_URL` to the host you'll reach the dashboard on — e.g. `http://192.168.1.20:3001` or `https://manifest.mydomain.com`. This MUST match the URL in the browser or Better Auth will reject the login with "Invalid origin".
231
+
2. In `.env`, set `BETTER_AUTH_URL` to the host you'll reach the dashboard on, e.g. `http://192.168.1.20:3001` or `https://manifest.mydomain.com`. This MUST match the URL in the browser or Better Auth will reject the login with "Invalid origin".
215
232
3. `docker compose up -d` to apply.
216
233
217
234
If you see "Invalid origin" on the login page, `BETTER_AUTH_URL` doesn't match the URL you're accessing the dashboard on. The host matters as much as the port.
@@ -220,11 +237,11 @@ If you see "Invalid origin" on the login page, `BETTER_AUTH_URL` doesn't match t
220
237
221
238
Every release is published with the following tags:
- `{major}.{minor}`- latest patch within a minor (e.g. `5.46`)
242
+
- `{major}`- latest minor+patch within a major (e.g. `5`)
243
+
- `latest`- latest stable release
244
+
- `sha-<short>`- exact commit for rollback
228
245
229
246
Images are built for both `linux/amd64` and `linux/arm64`.
230
247
@@ -237,7 +254,7 @@ docker compose pull
237
254
docker compose up -d
238
255
```
239
256
240
-
Database migrations run automatically on boot — no manual steps. Your data in the `pgdata` volume is preserved across upgrades. Pin to a specific major version (e.g. `manifestdotbuild/manifest:5`) in `docker-compose.yml` if you want control over when major upgrades happen.
257
+
Database migrations run automatically on boot, no manual steps. Your data in the `pgdata` volume is preserved across upgrades. Pin to a specific major version (e.g. `manifestdotbuild/manifest:5`) in `docker-compose.yml` if you want control over when major upgrades happen.
241
258
242
259
## Backup & persistence
243
260
@@ -266,14 +283,14 @@ docker compose down -v # ⚠ destroys all data
0 commit comments