git.alexw.nyc home about git garden
    1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33
   34
   35
   36
   37
   38
   39
   40
   41
   42
   43
   44
   45
   46
   47
   48
   49
   50
   51
   52
   53
   54
   55
   56
   57
   58
   59
   60
   61
   62
   63
   64
   65
   66
   67
   68
   69
   70
   71
   72
   73
   74
   75
   76
🐟 Flounder
===========

A lightweight platform to help users build simple Gemini sites over http(s) and
serve those sites over http(s) and Gemini

Flounder is in ALPHA -- development and features are changing frequently,
especially as the Gemini spec and ecosystem remains relatively unstable.

See the flagship instance at https://flounder.online

Building and running locally Requirements:
------------------------------------------

* go >= 1.15
* sqlite dev libraries

To run locally, copy example-config.toml to flounder.toml, then run:

mkdir files
go run . serve

Add the following to /etc/hosts (include any other users you want to create):

127.0.0.1 flounder.local admin.flounder.local proxy.flounder.local 

Then open flounder.local:8165 in your browser. The default login/password is
admin/admin

TLS Certs and Reverse Proxy
---------------------------

Gemini TLS certs are handled for you. For HTTP, when deploying your site,
you'll need a reverse proxy that does the following for you:

1. Cert for yourdomain.whatever
1. Wildcard cert for \*.yourdomain.whatever
2. On Demand cert for custom user domains

If you have a very small deployment of say, <100 users, for example, you can
use on demand certificates for all domains, and you can skip step 2.

However, for a larger deployment, you'll have to set up a wildcard cert.
Wildcard certs are a bit of a pain and difficult to do automatically, depending
on your DNS provider. For information on doing this via Caddy, you can follow
this guide:
https://caddy.community/t/how-to-use-dns-provider-modules-in-caddy-2/8148.

For information on using certbot to manage wildcard certs, see this guide:
https://letsencrypt.org/docs/challenge-types/#dns-01-challenge

An example simple Caddyfile using on-demand certs is available in
Caddyfile.example

If you want to host using a server other than Caddy, there's no reason you
can't, but it may be more cumbersome to setup the http certs.

Administration
--------------

Flounder is designed to be small, easy to host, and easy to administer. Signups
require manual admin approval.

Development
-----------

Use git-send-email to send a patch to me (email in git commits)

Note that this code base is pretty bad. Don't worry about it.

Donate
------

If you'd like to support Flounder development, consider subscribing to my Patreon:

https://www.patreon.com/alexwennerberg