jsonresume-gemini is a single purpose server implementation of the Gemini protocol: server up your JSON Resume over the Gemini protocol.
The Gemini protocol is a new internet protocol which much lighter then the web. Harks back to a simpler time of the early web, Gemini is a much easier to implement protocol, and text/gemini is bare-bones easy. Early web and gopher nostalgia.
JSON Resume is a JSON schema for describing one's resume. There are numerous solutions out there for converting jsonresume to html or pdf. This is my take on jsonresume applied to the world of Gemini space.
jsonresume-gemini does it's business as follows:
- A ReactPHP implementation of the Gemini protocol
- Server side middleware that maps Gemini requests to sections of your
jsonresumefor dynamic generation - Laminas based templating system
- Install
php-cli(v8+) git clonethis repo- Create your own SSL certificate
openssl req -x509 -nodes -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365cat key.pem >> cert.pem
- Update
config.iniwith the path to yourjsonresume - 🔥 Fire it up
php server.php
Optionally, on a systemd based OS, you can setup jsonresume-gemini to run as a service.
- Create the file
/etc/systemd/system/jsonresume-gemini.service
[Unit]
Description=JSON Resume Gemini Server
[Service]
User=gemini
Type=simple
TimeoutSec=0
WorkingDirectory=/srv/jsonresume-gemini/
PIDFile=/var/run/jsonresume-gemini.pid
ExecStart=/usr/bin/php -f /srv/jsonresume-gemini/server.php
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=default.target
systemctl enable jsonresume-geminisystemctl start jsonresume-gemini