@l1nsn0w/dox 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +73 -0
  2. package/dox.js +95206 -0
  3. package/package.json +36 -0
package/README.md ADDED
@@ -0,0 +1,73 @@
1
+ # dox
2
+
3
+ A self-hosted todo — for one person, or a few.
4
+
5
+ A single Go binary on your server, a thin TUI client on your laptop. The
6
+ server holds every byte of truth; the client never caches. Whoever registers
7
+ first becomes the owner and decides who else gets in.
8
+
9
+ ![screenshot](./docs/imgs/screenshot.png)
10
+
11
+ > **Heads up:** dox is in early, active development — things will move and
12
+ > occasionally break between versions. Issues and pull requests warmly
13
+ > welcome at [github.com/lin-snow/dox](https://github.com/lin-snow/dox).
14
+
15
+ ## Deploy
16
+
17
+ The server is one container. One command, one persistent volume:
18
+
19
+ ```bash
20
+ docker run -d --name dox \
21
+ -p 8080:8080 \
22
+ -v /opt/dox/data:/app/data \
23
+ sn0wl1n/dox:latest
24
+ ```
25
+
26
+ Or with `compose.yml`:
27
+
28
+ ```yaml
29
+ services:
30
+ dox:
31
+ image: sn0wl1n/dox:latest
32
+ ports: ["8080:8080"]
33
+ volumes: ["./data:/app/data"]
34
+ restart: unless-stopped
35
+ ```
36
+
37
+ ## Use
38
+
39
+ Install the client, then run it:
40
+
41
+ ```bash
42
+ npm install -g @l1nsn0w/dox # or: bun add -g @l1nsn0w/dox
43
+ dox
44
+ ```
45
+
46
+ The TUI handles onboarding (register · login · accept invite) and everything
47
+ after.
48
+
49
+ ## Stack
50
+
51
+ - **Server** — Go · grpc-gateway · sqlc · goose · SQLite
52
+ - **Client** — TypeScript · Ink · Bun
53
+ - **Contract** — `proto/dox/v1/` (auth, user, project, invite, todo)
54
+
55
+ IDs are ULID, timestamps are `int64` unix milliseconds, and only two routes
56
+ are public: `/v1/auth/register` and `/v1/auth/redeem`. Everything else needs
57
+ a device bearer token.
58
+
59
+ ## Develop
60
+
61
+ ```bash
62
+ just gen # proto → Go + TS, sqlc → Go DB bindings
63
+ just serve # run the server locally
64
+ just cli -- list # run the CLI against the local server
65
+ just release v0.1.0 # tag + push → triggers Docker Hub release
66
+ ```
67
+
68
+ See [`docs/onboarding.md`](docs/onboarding.md) for how the auth/onboarding
69
+ flow actually works.
70
+
71
+ ## License
72
+
73
+ [AGPL-3.0](LICENSE)