💾 Archived View for gemini.wolffy.eu › gemlog › gemini.wolffy.eu › gemlog › 2024-08-23-Setup-Gemini-… captured on 2024-08-24 at 23:34:37. Gemini links have been rewritten to link to archived content

View Raw

More Information

-=-=-=-=-=-=-

Setting up my own Gemini Capsule with Docker.

↩ go back

Building a Molly-Brown Gemini server Container

I couldnt find any prebuilt Molly-Brown Containers so i had to build one myself.

Thanks to the help of MinimalistWolf on Reddit i got an Example Dockerfile which i had to edit a bit to fit my needs.

Link to Original Reddit post

Molly-Brown on Tildegit

Dockerfile

FROM golang:alpine3.15 AS builder

ENV GOPATH /root/go

RUN mkdir /root/go && go install tildegit.org/solderpunk/molly-brown@latest

FROM alpine:latest

EXPOSE 1965

COPY --from=builder /root/go/bin/molly-brown /usr/sbin/molly-brown

RUN adduser -D -s /sbin/nologin molly && mkdir /home/molly/ssl /var/gemini

RUN chown -R molly: /var/gemini

USER molly

CMD ["/usr/sbin/molly-brown -c /etc/molly/molly.conf"]

Docker-compose

Since i already have a NginxProxyManager Container running i gave it the job of managing the Let's Encrypt certificates for Molly-Brown which sadly came with its own problems.

To make my life a little more easy managing my capsule i added a sftp container to be able to quickly upload changes to my capsule.

Docker-Compose

services:

change-vol-ownership:

image: ubuntu

user: "root"

group_add:

- '1000'

volumes:

- nginx-proxy-manager_letsencrypt:/tmp/certs

- config:/tmp/config

command: bash -c "cp /tmp/certs/live/npm-6/fullchain.pem /tmp/config/certs && cp /tmp/certs/live/npm-6/privkey.pem /tmp/config/certs && chown -R 1000:1000 /tmp/config/certs"

molly-brown:

image: molly-brown:latest

ports:

- "1965:1965"

volumes:

- config:/etc/molly/

- content:/var/gemini/

- nginx-proxy-manager_letsencrypt:/etc/letsencrypt:ro

restart: always

command:

- /usr/sbin/molly-brown

- -c

- /etc/molly/molly.conf

user: molly

depends_on:

change-vol-ownership:

condition: service_completed_successfully

sftp:

image: atmoz/sftp

volumes:

- config:/home/wolffy/config

- content:/home/wolffy/content

- sshKeys:/home/wolffy/.ssh/keys

- ssh:/etc/ssh/

ports:

- "2222:22"

command: wolffy::1000

volumes:

config:

content:

sshKeys:

ssh:

nginx-proxy-manager_letsencrypt:

external: true