Skip to content
Login Changemaker Archive. Learn more

# BNKops Server Build

Purpose: a Ubuntu server build-out for general application

This documentation is a overview of the full build out for a server OS and baseline for running Changemaker-lite. It is a manual to re-install this server on any machine.

All of the following systems are free and the majority are open source.

## Ubuntu OS

Ubuntu is a Linux distribution derived from Debian and composed mostly of free and open-source software.

### Install Ubuntu

### Post Install

Post installation, run update:

    sudo apt update

    sudo apt upgrade

### Configuration

Further configurations:

- User profile was updated to Automatically Login
- Remote Desktop, Sharing, and Login have all been enabled.
- Default system settings have been set to dark mode.

## VSCode Insiders

Visual Studio Code is a new choice of tool that combines the simplicity of a code editor with what developers need for the core edit-build-debug cycle.

### Install Using App Centre

## Obsidian

The free and flexible app for your private thoughts.

### Install Using App Center

## Curl

command line tool and library for transferring data with URLs (since 1998)

### Install

    sudo apt install curl

## Glances

Glances an Eye on your system. A top/htop alternative for GNU/Linux, BSD, Mac OS and Windows operating systems.

### Install

    sudo snap install glances

## Syncthing

Syncthing is a continuous file synchronization program. It synchronizes files between two or more computers in real time, safely protected from prying eyes. Your data is your data alone and you deserve to choose where it is stored, whether it is shared with some third party, and how it’s transmitted over the internet.

### Install

    # Add the release PGP keys:
    sudo mkdir -p /etc/apt/keyrings
    sudo curl -L -o /etc/apt/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpg

    # Add the "stable" channel to your APT sources:
    echo "deb [signed-by=/etc/apt/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list

    # Update and install syncthing:
    sudo apt-get update
    sudo apt-get install syncthing

### Post Install

Run syncthing as a system service.

    sudo systemctl start syncthing@yourusername

    sudo systemctl enable syncthing@yourusername

## Docker

Docker helps developers build, share, run, and verify applications anywhere — without tedious environment configuration or management.

    # Add Docker's official GPG key:
    sudo apt-get update
    sudo apt-get install ca-certificates curl
    sudo install -m 0755 -d /etc/apt/keyrings
    sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
    sudo chmod a+r /etc/apt/keyrings/docker.asc

    # Add the repository to Apt sources:
    echo \
      "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
      $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
      sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    sudo apt-get update

    sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

### Update Users

    sudo groupadd docker

    sudo usermod -aG docker $USER

    newgrp docker

### Enable on Boot

    sudo systemctl enable docker.service
    sudo systemctl enable containerd.service

## Cloudflared

Connect, protect, and build everywhere. We make websites, apps, and networks faster and more secure. Our developer platform is the best place to build modern apps and deliver AI initiatives.

    sudo mkdir -p --mode=0755 /usr/share/keyrings
    curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg >/dev/null

    echo "deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared any main" | sudo tee /etc/apt/sources.list.d/cloudflared.list

    sudo apt-get update && sudo apt-get install cloudflared

### Post Install

Login to Cloudflare

    cloudflared login

### Configuration

The `./config.sh` and `./start-production.sh` scripts will properly configure a Cloudflare tunnel and service to put your system online. More info in the Cloudflare Configuration.

## Pandoc

If you need to convert files from one markup format into another, pandoc is your swiss-army knife.

    sudo apt install pandoc