src | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
install.sh | ||
README.md |
soyuz-cli
This is the sister application to soyuz-web
.
soyuz-cli
can be used alone or on combination with soyuz-web
to publish and syncronise a gemlog between your local machine and your gemini server.
It is mostly a wrapper around rsync
. Additionally it will maintain an archive of posts for each year, and the latest 5 posts on your gemlog homepage.
Assumptions
- You are using MacOS locally and a unix-like OS on the server (it probably works on n*x locally but I haven't tested it)
- If you have text under the list of latest posts on your homepage, you have at least 5 posts listed already (I could have put in some logic to deal with this but I am lazy)
- You have
rsync
andssh
installed on your local machine - You have read and write permission for your gemlog files on the server, with the same username as your local machine (otherwise file permissions get weird)
- You have permission to install files at
/usr/local/bin
on your local machine - You publish posts one at a time, so each post will be published prior to the next one being drafted
Installation
The easiest way to install soyuz-cli
is using the install script. If you are using MacOS, run this command in Terminal
:
curl https://hugh.run/install-soyuz | bash
Alternatively, you can build from source if you have rust and cargo installed.
Set up
Once installed, run soyuz settings
to create a new settings file. The settings file has the following values:
local_dir
- the directory on your local machine where your Gemini files are savedremote_dir
- the SSH remote directory path to your files on the server. This includes the server name or ip address, so should look something likegemini-server:/srv/gemini/example.com
orusername@123.456.789:/srv/gemini/example.com
.editor
- the command to open the text editor you want to use. Defaults tonano
.index_heading
- the heading text above the latest posts listing on your homepage. If unsure, leave this on the default.
Commands
Run soyuz help
for a list of commands and what they do.