Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/michaelcaplan/jsonresume-gemini
A Gemini server implementation to dynamically deliver your JSON resume
https://github.com/michaelcaplan/jsonresume-gemini
gemini-protocol gemini-server jsonresume
Last synced: 3 months ago
JSON representation
A Gemini server implementation to dynamically deliver your JSON resume
- Host: GitHub
- URL: https://github.com/michaelcaplan/jsonresume-gemini
- Owner: michaelcaplan
- License: mit
- Created: 2022-03-25T01:37:23.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2022-03-27T14:57:08.000Z (over 2 years ago)
- Last Synced: 2024-04-24T17:29:56.093Z (7 months ago)
- Topics: gemini-protocol, gemini-server, jsonresume
- Language: PHP
- Homepage:
- Size: 94.7 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-gemini - jsonresume-gemini - single purpose server implementation of the Gemini protocol to serve up your JSON Resume. (Servers / Graphical)
README
# jsonresume-gemini
`jsonresume-gemini` is a single purpose server implementation of the Gemini protocol: server up your JSON Resume over the Gemini protocol.
The [Gemini protocol](https://gemini.circumlunar.space/) 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](https://jsonresume.org/) 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](https://reactphp.org/) implementation of the Gemini protocol
* Server side middleware that maps Gemini requests to sections of your `jsonresume` for dynamic generation
* [Laminas](https://getlaminas.org/) based templating system## Stand up your own `jsonresume-gemini` server
* Install `php-cli` (v8+)
* `git clone` this repo
* Create your own SSL certificate
* `openssl req -x509 -nodes -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365`
* `cat key.pem >> cert.pem`
* Update `config.ini` with the path to your `jsonresume`
* 🔥 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`
```text
[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=processRestart=on-failure
RestartSec=42s[Install]
WantedBy=default.target
```
* `systemctl enable jsonresume-gemini`
* `systemctl start jsonresume-gemini`### Find me at [gemini://michaelcaplan.com](gemini://michaelcaplan.com)