~gsthnz/satellite

Gemini Server
a day ago
a day ago

#Satellite

Satellite is a small Gemini server for serving static files.

#Usage

satellite

See satellite (1)

#Configuration

By default, Satellite uses /etc/satellite.toml, but a custom config file can be supplied with the -c flag.

#Example configuration

# Address to listen to requests (default: 0.0.0.0:1965)
listen = "0.0.0.0"

[tls]
# Directory to save certificates
directory = "/var/lib/gemini/certs"

# Multiple domains can be set with the [[domain]] section
[[domain]]
name = "example.com"
root = "/srv/gemini/example.com"

[[domain]]
name = "example2.com"
root = "/srv/gemini/example2.com"

The SSL certificate generation will be managed by Satellite and will be automatically regenerated on the certificate expiry date.

More information on satellite.toml(5)

#Installation

It depends on OpenSSL, scdoc and Go to be installed. Consult your OS system package manager to learn more about it.

$ make
$ make install

This will install a sample configuration on /usr/local/share/satellite/satellite.toml that you can later copy to /etc/satellite.toml.

#Running with Docker

Build an image:

$ docker build -t satellite .

Create two directories to store certs/configuration and data served by satellite (Satellite runs under UID 1000, so we need to grant it RWX on the config dir), then run the container:

$ mkdir config
$ mkdir data
$ cat >config/config.toml <<EOF
[tls]
directory = "/config"
[[domain]]
name = "example.org"
root = "/data"
EOF
$ chown 1000 config
$ chmod 700 config
$ docker run -d -p 1965:1965 -v $(pwd)/config:/config -v $(pwd)/data:/data satellite

#Contributing

Patches and questions? Send to my public inbox: ~gsthnz/public-inbox@lists.sr.ht. Thanks!