• Create Proxmox Alpine container for i2pd router

    • Step 1: Download the Alpine Linux container template https://pve.proxmox.com/wiki/Linux_Container#pct_container_images

      • 1a: Open a SHELL on your Proxmox host and query the available alpine linux containers

        pveam available | grep alpine
        

        image.png

      • 1b: Download the version of Alpine Linux you want. Ex.

        pveam download local alpine-3.18-default_20230607_amd64.tar.xz
        

        NOTE: local in this command is your named storage device, your storage might be named differently

      • 1c: Ensure the container was downloaded with the command:

        pveam list local
        
        NAME                                                         SIZE  
        local:vztmpl/alpine-3.18-default_20230607_amd64.tar.xz       2.85MB
        

        NOTE: Again, local is a named storage device, yours might be different.

    • Step 2: Create a new container in Proxmox image.png

      • 2a: Select your Alpine Linux container template image.png
      • 2b: Customize the hardware for this container. The toughest thing this container will do is build i2pd from source. I recommend 2GB of RAM and 1GB of Disk Space, otherwise the kernel will kill the build process for using too many resources. After that, you can lower the CPU/Memory afterwards. My i2pd container peaked at ~90MB of RAM and 45% CPU usage for instance.
    • Step 3: Start your new Alpine Container and open a shell and login with your username/password you set. image.png

    • Step 4: Run the i2pd-alpine-aio.sh script from https://codeberg.org/Strict3443/i2pd-alpine-aio/raw/branch/main/i2pd-alpine-aio.sh

      wget -O ./i2pd-alpine-aio.sh "https://codeberg.org/Strict3443/i2pd-alpine-aio/raw/branch/main/i2pd-alpine-aio.sh"
      chmod a+x ./i2pd-alpine-aio.sh
      ./i2pd-alpine-aio.sh
      

      This script will:

      • Build i2pd from source with the latest release
      • Generate a preconfigured i2pd.conf with services enabled and a unique username/password for the web console
      • Create an i2pd service with OpenRC
      • Setup logrotate for the i2pd logs
    • Step 5: Ensure i2pd is running and working.

      • Run ps command to see if the i2pd program is running
      • Run service i2pd status to see that status. Ex. * status: started
      • Find your container’s local IP address with ip -4 a and navigate to the i2pd web console at http://<container-ip>:7070
    • Step 6: Done!