How to Install Pomerium on Manjaro

Pomerium is an open-source authentication and authorization tool that makes it easy to secure internal applications and services. In this tutorial, we will guide you through the process of installing Pomerium on Manjaro.

Prerequisites

Before starting with the installation process, you should have the following:

Step 1: Install Docker

Pomerium requires Docker to be installed on your system.

To install Docker, run the following command:

sudo pacman -S docker

Step 2: Install Pomerium

To install Pomerium, you can either use the official Docker image or download the binary from the Pomerium website.

Option 1: Using the Official Docker Image

To install Pomerium using the official Docker image, run the following command:

sudo docker run -p 80:80 -p 443:443 -v ~/.pomerium:/etc/pomerium -v ~/.pomerium/data:/var/run/pomerium --name pomerium pomerium/pomerium:latest

This command starts a Pomerium container and maps the container ports 80 and 443 to the host machine ports. It also creates a volume for the Pomerium configuration.

Option 2: Downloading the Binary

To download the Pomerium binary, go to the Pomerium releases page and download the latest version of the binary for your operating system.

After downloading the binary, you need to make it executable:

chmod +x ~/Downloads/pomerium-linux-{{version}}

Then, move the binary to the /usr/bin directory:

sudo mv ~/Downloads/pomerium-linux-{{version}} /usr/bin/pomerium

Step 3: Configure Pomerium

To configure Pomerium, you need to create a configuration file.

Create a new file named config.yaml in the ~/.pomerium directory, and paste the following configuration:

---
idp:
  provider: google
  client_id: ""
  client_secret: ""
  service_account:
    json_file: "/path/to/service_account.json"
  cookie_secret: ""
  callback_uri: "https://auth.example.com/oauth2/callback"
routes:
- from: http://app.example.com
  to: http://app.internal:8080

Replace the client_id, client_secret, service_account, cookie_secret, and callback_uri values with your own values.

Step 4: Start Pomerium

To start Pomerium, run the following command:

sudo docker run -p 80:80 -p 443:443 -v ~/.pomerium:/etc/pomerium -v ~/.pomerium/data:/var/run/pomerium --name pomerium pomerium/pomerium:latest /pomerium -config /etc/pomerium/config.yaml

This command starts a Pomerium container and maps the container ports 80 and 443 to the host machine ports. It also creates a volume for the Pomerium configuration and starts Pomerium with the config.yaml file you created in step 3.

Step 5: Verify Pomerium

To verify that Pomerium is working, open your web browser and go to https://auth.example.com. If everything is set up correctly, you should be prompted to log in with your Google account, and then redirected to the http://app.example.com endpoint.

Congratulations! You have successfully installed and configured Pomerium on Manjaro Linux.

If you want to self-host in an easy, hands free way, need an external IP address, or simply want your data in your own hands, give IPv6.rs a try!

Alternatively, for the best virtual desktop, try Shells!