README.md (2519B)
1 # 🐟 Flounder 2 3 A lightweight platform to help users build simple Gemini sites over http(s) and 4 serve those sites over http(s) and Gemini 5 6 Flounder is in ALPHA -- development and features are changing frequently, 7 especially as the Gemini spec and ecosystem remains relatively unstable. 8 9 See the flagship instance at [https://flounder.online](https://flounder.online) and 10 [gemini://flounder.online](gemini://flounder.online) 11 12 ## Building and running locally Requirements: 13 * go >= 1.15 14 * sqlite dev libraries 15 16 To run locally, copy example-config.toml to flounder.toml, then run: 17 18 `mkdir files` `go run . serve` 19 20 Add the following to `/etc/hosts` (include any other users you want to create): 21 22 ``` 23 127.0.0.1 flounder.local admin.flounder.local proxy.flounder.local 24 ``` 25 26 Then open `flounder.local:8165` in your browser. The default login/password is 27 admin/admin 28 29 ## TLS Certs and Reverse Proxy 30 31 Gemini TLS certs are handled for you. For HTTP, when deploying your site, 32 you'll need a reverse proxy that does the following for you: 33 34 1. Cert for yourdomain.whatever 35 1. Wildcard cert for \*.yourdomain.whatever 36 2. On Demand cert for custom user domains 37 38 If you have a very small deployment of say, <100 users, for example, you can 39 use on demand certificates for all domains, and you can skip step 2. 40 41 However, for a larger deployment, you'll have to set up a wildcard cert. 42 Wildcard certs are a bit of a pain and difficult to do automatically, depending 43 on your DNS provider. For information on doing this via Caddy, you can follow 44 [this guide](https://caddy.community/t/how-to-use-dns-provider-modules-in-caddy-2/8148.) 45 46 For information on using certbot to manage wildcard certs, see [this guide](https://letsencrypt.org/docs/challenge-types/#dns-01-challenge) 47 48 An example simple Caddyfile using on-demand certs is available in 49 Caddyfile.example 50 51 If you want to host using a server other than Caddy, there's no reason you 52 can't, but it may be more cumbersome to setup the http certs. 53 54 ## Administration 55 56 Flounder is designed to be small, easy to host, and easy to administer. Signups 57 require manual admin approval. 58 59 ## Development 60 61 Use [git-send-email](https://git-scm.com/docs/git-send-email) to send a patch to my [mailing list](https://lists.sr.ht/~aw/patches): [~aw/patches@lists.sr.ht](mailto:~aw/patches@lists.sr.ht) 62 63 Note that this code base is pretty bad. Don't worry about it. 64 65 ## Donate 66 67 If you'd like to support Flounder development, consider subscribing to my [Patreon](https://www.patreon.com/alexwennerberg)