DevLog 250613 – Server Setup for Development

> Log Date: 250613

Today I configured a remote Ubuntu server, equipping it with xRDP, Docker, and local LLM support via Ollama for CPU inference. This guide includes the full shell history and future-proofing notes.

This machine will act as a remote development environment for my AI tooling and automation stack, centered around Docker containers and CPU-friendly models. I configured a full desktop interface via Xfce, installed Ollama and pulled lightweight models, and prepped the system for future services like n8n and WebUIs.


System Overview


1. Install GUI + Remote Access

sudo apt update && sudo apt upgrade -y
sudo apt install xfce4 xfce4-goodies xrdp -y
sudo systemctl enable xrdp
sudo systemctl start xrdp
echo "startxfce4" > ~/.xsession
chmod +x ~/.xsession
sudo systemctl restart xrdp

If login fails via RDP:

rm ~/.xsession
rm ~/.Xauthority
echo "exec startxfce4" > ~/.xsessionrc
chmod +x ~/.xsessionrc
sudo systemctl restart xrdp

2. Install Firefox for GUI Access

sudo apt install firefox -y

3. Development Dependencies

This script installs GTK, build tools, and other common libraries for UI-based dev or GUI containers:

sudo apt install -y software-properties-common
sudo add-apt-repository universe
sudo apt update
sudo apt install -y build-essential curl wget libssl-dev libgtk-3-dev \
libappindicator3-dev libx11-dev libgdk-pixbuf2.0-dev libpango1.0-dev \
libatk1.0-dev libglib2.0-dev libglib2.0-bin libgobject-2.0-dev \
pkg-config libayatana-appindicator3-dev librsvg2-dev \
libwebkit2gtk-4.1-dev

4. Ollama LLMs for CPU

curl -fsSL https://ollama.com/install.sh | sh
exec zsh
ollama pull mistral
ollama pull codellama:7b
ollama pull gemma:2b
ollama pull llama2:7b
ollama pull orca-mini
ollama pull phi

5. Docker Installation

sudo apt install docker.io docker-compose -y
sudo usermod -aG docker $USER
newgrp docker

6. Ollama via Docker

mkdir -p ~/docker/ollama
cd ~/docker/ollama

docker-compose.yml:

version: "3.8"

services:
  ollama:
    image: ollama/ollama
    container_name: ollama
    restart: unless-stopped
    ports:
      - "11434:11434"
    volumes:
      - ollama_data:/root/.ollama

volumes:
  ollama_data:

Spin it up:

docker compose up -d
docker exec -it ollama bash

Inside the container:

ollama pull mistral
ollama pull codellama:7b
ollama pull gemma:2b
ollama pull llama2:7b
ollama pull orca-mini
ollama pull phi

7. Disk + Docker Audit Commands

df -hT
sudo du -h --max-depth=1 / | sort -hr
du -h --max-depth=1 ~ | sort -hr
sudo apt install -y fdupes
fdupes -r ~
docker ps -a
docker images
docker volume ls
docker system df

Next Steps


— Lorelei Noble

Return to DevLogs