An open API service indexing awesome lists of open source software.

https://github.com/remko/gemsite

Remko's Gemini Capsule
https://github.com/remko/gemsite

gemini gemini-protocol gemini-server

Last synced: 4 months ago
JSON representation

Remko's Gemini Capsule

Awesome Lists containing this project

README

          

# Remko's Gemini Capsule

[![Build](https://github.com/remko/gemsite/actions/workflows/build.yml/badge.svg)](https://github.com/remko/gemsite/actions/workflows/build.yml)

This repository contains the content and the server for [my Gemini
capsule](gemini://g.mko.re).

Both the server and the builder are written in Go, and don't have any
dependencies (except for the Go standard library)

The [capsule builder](https://github.com/remko/gemsite/blob/main/cmd/buildgemsite/buildgemsite.go) converts Markdown to Gemtext using a simple conversion (without needing a full Markdown parser), and packages everything into a single, self-contained server binary.

The [capsule server](https://github.com/remko/gemsite/blob/main/gemsite.go) supports:

- Serving static files
- Search
- Microblog, dynamically fetched from Mastodon
- Administration operations (e.g. collecting a CPU profile) using TLS Client Certificate
authentication


BlogMicroblog
Search

# Ops

## Initializing

Create a server key and certificate:

make server.crt

Create an admin user certificate:

make admin.crt

## Building

make

To cross-compile it to a Raspberry PI:

make BUILD_RPI=1

## Installing (Debian/Raspbian)

- Install in `/opt/gemsite`
- Create link to `/opt/gemsite/init/gemsite.service` in
`/etc/systemd/system/gemsite.service`
- `systemctl daemon-reload`
- `systemctl enable gemsite`
- `service gemsite start`

## Check status/logs

journalctl -f -n 50 -u gemsite

## Restart

systemctl restart gemsite