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