My personal gemini capsule
Find a file
Travis Shears 5c669f241f
remove the md to gemtext stuff
")

-----------------------------

")
%s
```", code)
")
=> %s %s

", remoteURL, path))

")
")
")

-----------------------------

=> / Back to home
")
2025-10-15 19:01:57 +02:00
internal remove the md to gemtext stuff 2025-10-15 19:01:57 +02:00
.gitignore init visit counter 2025-10-12 18:06:15 +02:00
build.sh dockerize go app 2025-09-25 21:01:18 +02:00
counter.go load counter path from env 2025-10-12 20:03:27 +02:00
dev.sh init visit counter 2025-10-12 18:06:15 +02:00
Dockerfile fix docker build 2025-10-15 11:53:48 +02:00
go.mod remove the md to gemtext stuff 2025-10-15 19:01:57 +02:00
go.sum remove the md to gemtext stuff 2025-10-15 19:01:57 +02:00
gpg.gmi add gpg page 2025-10-13 12:56:32 +02:00
home.gmi add codeview link to homepage 2025-10-15 16:50:39 +02:00
LICENSE.md add custom usernames to guestbook 2025-10-10 16:13:59 +02:00
main.go add gpg page 2025-10-13 12:56:32 +02:00
README.md author homepage 2025-09-26 13:38:17 +02:00
tasks.txt switch from date to hex for gemlog listing 2025-10-12 20:36:39 +02:00

Personal Gemini Capsule

My own little corner of Geminispace. A partner Gemini capsule to my personal website https://travisshears.com

gemini://travisshears.com/

General Gemini resources and inspiration

Deployment

This capsule is selfhosted on my Nomad backed homelab.

To deploy simply run the ./build.sh script. That will build the docker image and push it to ECR. After that just re-deploy the nomad job and it will run it in the cluster.

VPC Setup

The travisshears.com domain points to one of my VPCs. There http traffic after some cool ai blocking steps routes to my Astro.js web server running in the homelab. The gemini capsule works similarly. To route gemini traffic to the capsule docker container I also use nginx. Here is what the nginx config looks like:

stream {
    upstream gemini_backend {
        server homelab:XXXX;
    }

    server {
        listen 1965;
        proxy_pass gemini_backend;
    }
}

This uses the stream module which allows for TCP connections to be proxied.

Don't forget to open the firewall port:

$ sudo ufw allow 1965/tcp

Dev

Generate self-signed certificate:

$ openssl genrsa -out localhost_key.pem 2048
$ openssl req -new -key localhost_key.pem -out localhost_cert.csr
$ openssl x509 -req -days 365 -in localhost_cert.csr -signkey locslhost_key.pem -out cert.crt.pem

common name is the domain name ex 'localhost'

Run server on local:

$ ./dev.sh

Visit it:

$ bombadillo gemini://localhost:8080