diff options
Diffstat (limited to 'content/blog/2021-04-17-gemini-server.md')
-rw-r--r-- | content/blog/2021-04-17-gemini-server.md | 76 |
1 files changed, 36 insertions, 40 deletions
diff --git a/content/blog/2021-04-17-gemini-server.md b/content/blog/2021-04-17-gemini-server.md index 7b4aafe..19b336f 100644 --- a/content/blog/2021-04-17-gemini-server.md +++ b/content/blog/2021-04-17-gemini-server.md @@ -7,28 +7,27 @@ draft = false # Similar Article Available -To read more about Gemini and ways to test out this new protocol without -your own server, see my previous post [Launching a Gemini +To read more about Gemini and ways to test out this new protocol without your +own server, see my previous post [Launching a Gemini Capsule](../launching-a-gemini-capsule/). # Preparation -This guide assumes you have access to a server accessible to the world -through a public IP address and that you own a domain name used for this -Gemini capsule. +This guide assumes you have access to a server accessible to the world through a +public IP address and that you own a domain name used for this Gemini capsule. # Getting Started with Agate We are going to use [Agate](https://github.com/mbrubeck/agate) for this -tutorial. This is a basic Gemini server written in Rust. It takes very -little time and maintenance to get it running. +tutorial. This is a basic Gemini server written in Rust. It takes very little +time and maintenance to get it running. # Install Dependencies -First, you will need to install the Rust package for your system. On -Ubuntu, use the following commands (remember to use `sudo` if -you are not the root user). The Rust installation will give you options -to customize the installation; I used the default installation options. +First, you will need to install the Rust package for your system. On Ubuntu, use +the following commands (remember to use `sudo` if you are not the root user). +The Rust installation will give you options to customize the installation; I +used the default installation options. ```sh sudo apt update && sudo apt upgrade -y @@ -41,15 +40,14 @@ Remember to configure your shell with the new configuration: source $HOME/.cargo/env ``` -Before we install agate, make sure you have the `gcc` package -installed: +Before we install agate, make sure you have the `gcc` package installed: ```sh sudo apt install gcc ``` -Next, you\'ll need to install the agate executable with Rust\'s Cargo -package maintainer: +Next, you'll need to install the agate executable with Rust's Cargo package +maintainer: ```sh cargo install agate @@ -57,18 +55,17 @@ cargo install agate # Create Symlinks -Once Cargo has finished installing all the required packages, symlink -the executable to your \$PATH. +Once Cargo has finished installing all the required packages, symlink the +executable to your $PATH. ```sh sudo ln -s $HOME/.cargo/bin/agate /usr/local/bin/agate ``` -# Using Agate\'s Built-In Installation Tool +# Using Agate's Built-In Installation Tool -If you\'re running Ubuntu or Debian, use the Debian installation script -found in Agate\'s GitHub repository, under the `tools/debian` -folder. +If you're running Ubuntu or Debian, use the Debian installation script found in +Agate's GitHub repository, under the `tools/debian` folder. ```sh git clone https://github.com/mbrubeck/agate @@ -78,11 +75,10 @@ sudo ./install.sh # Configure the Gemini Service -We have a little more to do, but since this script tries to immediately -run the service, it will likely fail with an exit code. Let\'s add our -finishing touches. Edit the following file and replace the hostname with -your desired URL. You can also change the directory where content will -be served. +We have a little more to do, but since this script tries to immediately run the +service, it will likely fail with an exit code. Let's add our finishing +touches. Edit the following file and replace the hostname with your desired URL. +You can also change the directory where content will be served. ```sh sudo nano /etc/systemd/system/gemini.service @@ -101,8 +97,8 @@ WorkingDirectory=/var/gemini/ ExecStart=agate --hostname gemini.example.com --lang en ``` -Since we\'ve altered the systemd configuration files, we have to reload -the daemon. Let\'s do that, restart our service, and check its status. +Since we've altered the systemd configuration files, we have to reload the +daemon. Let's do that, restart our service, and check its status. ```sh sudo systemctl daemon-reload @@ -112,8 +108,8 @@ sudo systemctl status gemini.service # Fixing Systemd Errors -If you\'re still getting errors, the installation process may not have -properly enabled the gemini service. Fix it with the following commands. +If you're still getting errors, the installation process may not have properly +enabled the gemini service. Fix it with the following commands. ```sh sudo systemctl enable gemini.service @@ -123,9 +119,9 @@ sudo systemctl status gemini.service # Firewall Rules -Great! Our server is now functional and running. The first consideration -now is that you need to be able to access port 1965 on the server. If -you have a firewall enabled, you\'ll need to open that port up. +Great! Our server is now functional and running. The first consideration now is +that you need to be able to access port 1965 on the server. If you have a +firewall enabled, you'll need to open that port up. ```sh sudo ufw allow 1965 @@ -134,19 +130,19 @@ sudo ufw reload # Creating Content -Let\'s create the Gemini capsule. Note that wherever you set the -WorkingDirectory variable to earlier, Agate will expect you to put your -Gemini capsule contents in a sub-folder called \"content.\" So, I place -my files in \"/var/gmi/content.\" I\'m going to create that folder now -and put a file in there. +Let's create the Gemini capsule. Note that wherever you set the +WorkingDirectory variable to earlier, Agate will expect you to put your Gemini +capsule contents in a sub-folder called "content." So, I place my files in +"/var/gmi/content." I'm going to create that folder now and put a file in +there. ```sh sudo mkdir /var/gemini/content sudo nano /var/gemini/content/index.gmi ``` -You can put whatever you want in the \"index.gmi\" file, just make sure -it\'s valid Gemtext. +You can put whatever you want in the "index.gmi" file, just make sure it's +valid Gemtext. # The Results |