[very crude, wip] post to bsky without the distraction of feeds
at main 63 lines 2.3 kB view raw view rendered
1# zensky 2 3I came up with the idea of this web app because I wanted to be able to post something without getting sucked into the abyss of endless doomscrolling which I am *very* prone to doing. 4 5zensky only lets you write posts and hit send. You can read posts that you have *just* sent out on zensky. That's it. You can't read any other posts. 6 7The whole thing was vibe coded using Shelley, the built-in AI chatbot in an exe.dev VM. I plan to use this to understand Go project structure. I haven't audited shit -- not even the build and run instructions below this section -- so just be aware of that. Afaik Shelly did pretty good though and it both amazes and scares the shit out of me that AI agents are capable of this. 8 9You can try it out on: https://cooki.exe.xyz (due to some quirks of exe.dev VMs, it only works if you use `https` and not `http` in the url) 10 11If you see "Service unavailable" that means I -- intentionally or unintentionally -- shut down the process. Feel free to dm me on bluesky to request to turn it back on. Response not guaranteed (but most of the time i will, unless im rly busy or taking a break from the internet, just thought it'd be safer to say that) 12 13## Building and Running 14 15Build with `make build`, then run `./srv`. The server listens on port 8000 by default. 16 17## Running as a systemd service 18 19To run the server as a systemd service: 20 21```bash 22# Install the service file 23sudo cp srv.service /etc/systemd/system/srv.service 24 25# Reload systemd and enable the service 26sudo systemctl daemon-reload 27sudo systemctl enable srv.service 28 29# Start the service 30sudo systemctl start srv 31 32# Check status 33systemctl status srv 34 35# View logs 36journalctl -u srv -f 37``` 38 39To restart after code changes: 40 41```bash 42make build 43sudo systemctl restart srv 44``` 45 46## Authorization 47 48exe.dev provides authorization headers and login/logout links 49that this template uses. 50 51When proxied through exed, requests will include `X-ExeDev-UserID` and 52`X-ExeDev-Email` if the user is authenticated via exe.dev. 53 54## Database 55 56This template uses sqlite (`db.sqlite3`). SQL queries are managed with sqlc. 57 58## Code layout 59 60- `cmd/srv`: main package (binary entrypoint) 61- `srv`: HTTP server logic (handlers) 62- `srv/templates`: Go HTML templates 63- `db`: SQLite open + migrations (001-base.sql)