flounder

A simple gemini site builder
git clone git://git.alexwennerberg.com/flounder
Log | Files | Refs | README | LICENSE

README (2457B)


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