Gem2Browser
"Take the web by storm."
A Gemini relay for HTTP using Python flask
Features
- Browses all of Gemini Space!
- Includes Titan editor
- Client certificate support
- In versions 3.0 and newer, it does not store certificates in the server.
Requirements
- Python 3
- Flask
- Gunicorn (or any other flask compatible WSGI)
- PyOpenSSL
Installation
Docker Compose
Use this docker-compose.yml
services:
gem2browser:
image: git.swee.codes/swee/gem2browser:latest
restart: unless-stopped
ports:
- 2009:2009/tcp
On your host
pip install gem2browser gunicorn
Run server
WSGI server (recommended)
guicorn --bind 0.0.0.0:2009 gem2browser:app
Development server
python -m gem2browser
This listens on 127.0.0.1:2009
Service files
Systemd
[Unit]
Description=Gem2Browser
After=network.target
Wants=network-online.target
[Service]
Type=simple
# User=g2b
ExecStart=/usr/bin/gunicorn --bind 0.0.0.0:2009 gem2browser:app
Restart=on-failure
[Install]
WantedBy=multi-user.target
OpenRC
#!/sbin/openrc-run
# command_user="g2b"
command="gunicorn"
command_args="--bind=0.0.0.0:2009 gem2browser:app"
command_background="yes"
pidfile="/run/$RC_SVCNAME.pid"
depend() {
need net
use dns
}
FreeBSD rc
#!/bin/sh
# PROVIDE: gem2browser
# REQUIRE: NETWORKING
# KEYWORD: shutdown
. /etc/rc.subr
name="gem2browser"
rcvar="gem2browser_enable"
start_precmd="gem2browser_precmd"
procname="/usr/local/bin/python3"
pidfile="/var/run/${name}.pid"
load_rc_config $name
: ${gem2browser_enable:="NO"}
# : ${gem2browser_user:="g2b"}
command="/usr/sbin/daemon"
command_args="-f -l daemon -s info -p ${pidfile} gunicorn --bind=0.0.0.0:2009 gem2browser:app"
gem2browser_precmd() {
if [ ! -e "${pidfile}" ]; then
install -o "${gem2browser_user}" -g "wheel" "/dev/null" "${pidfile}"
fi
}
run_rc_command "$1"
Metadata
Release files for gem2browser 3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| gem2browser-3.1.tar.gz | 29.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gem2browser-3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 60.7 kB
Release files / gem2browser-3.1.tar.gz
| Download URL | gem2browser-3.1.tar.gz |
|---|---|
| Size | 29.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f73be6cc5a71e32f4edbf9da2a95a81f40b0e8f4ec2d297a0aaee00ee775c70d
|
|
BLAKE2b-256 checksum How to use checksums |
ced0e3df2210b7390b6e205471c4b596eae66398e723d8963bc9c71dfdd41bcf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|
Release files / gem2browser-3.1-py3-none-any.whl
| Download URL | gem2browser-3.1-py3-none-any.whl |
|---|---|
| Size | 31.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9cac2138660004b979d4cc2756ab8232beb6cc810b9f9a8e3e7967030c759039
|
|
BLAKE2b-256 checksum How to use checksums |
efbeb84390a414cf1e8efb4007f37d259a53c8b96b69d725f02eefa05b98b6ed
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|