Installing on Linux

CrystalSolutions, SoleTrader and PraxisClinic run on your own Linux computer or server, so your records stay with you. This works on Ubuntu, Debian, Linux Mint, Raspberry Pi OS and most other distributions. Pick the route that suits you.

Easiest

A. Easy install with Docker

Docker sets up the web server, PHP and the database for you. You type three short commands. Nothing else on your computer is changed.

Choose this if you want it running quickly, or you don't want to configure Apache and MySQL yourself.

Standard

B. Standard install on LAMP

Uses the Apache, PHP and MySQL already on your server, or that you install yourself. A web installer then walks you through the setup.

Choose this if you already run a web server, or you want full control over the setup.

Not sure? Choose A. You can always move to B later, because your records can be exported and imported.

A. Easy install with Docker

Before you start
  1. Install Docker (once only)

    Open a Terminal and paste this line. It is Docker's own installer and takes a minute or two. Skip this step if Docker is already installed.

    curl -fsSL https://get.docker.com | sh

    Then let your own user run Docker without typing sudo every time, and make Docker start whenever the computer starts:

    sudo usermod -aG docker $USER
    sudo systemctl enable docker

    Log out and back in (or restart) so that change takes effect.

  2. Unzip the Easy Install download

    Unzip it somewhere you will remember, such as your home folder, and don't rename or move the folder afterwards. You will get a folder named CrystalSolutions, SoleTrader or PraxisClinic.

    For example, if the zip is in Downloads and you are installing SoleTrader:

    cd ~/Downloads
    unzip SoleTrader*.zip -d ~
    cd ~/SoleTrader

    (If unzip isn't installed: sudo apt install unzip. Or right-click the zip in your file manager and choose Extract.)

  3. Start it

    From inside that folder, run:

    docker compose up -d

    The first time takes the longest, because Docker downloads the database and web server. Lots of technical text scrolls past. You don't need to do anything. When you get your prompt back, it is running.

  4. Open it and log in

    Open your browser at the address in the table below. Log in with admin and changeme, then change the password straight away in Setup → Password.

Addresses and ports

ProductOpen it in your browser at
CrystalSolutionshttp://localhost:8080/cspractice
SoleTraderhttp://localhost:8081/soletrader
PraxisClinichttp://localhost:8082/praxis

You can install more than one product on the same computer, because each uses its own port. On a server or Pi, replace localhost with its IP address, for example http://192.168.1.50:8081/soletrader.

Day to day

Run these from inside the install folder:

docker compose up -d      # start
docker compose down       # stop (your records are kept)
docker compose ps         # see whether it is running

Your records are kept in a Docker volume, not in the install folder, so stopping or restarting doesn't lose anything.

Going on the internet? The Docker install is meant for your own computer or home/office network. If you make it reachable from outside, put it behind HTTPS (for example Nginx or Caddy with a Let's Encrypt certificate) and keep the login password strong.

B. Standard install on LAMP

LAMP means Linux, Apache, MySQL and PHP. If your server already runs a website, you almost certainly have most of it.

You will need
  1. Follow the full guide for your product

    The guide takes you through installing Apache, PHP and MySQL, creating the database, and running the web installer:

  2. Make Apache honour the protection files (important)

    Each product keeps its private folders safe with .htaccess files. Many Linux systems ship with Apache set to ignore them, which would leave private files reachable. Fix it once with these three commands:

    sudo a2enmod rewrite
    sudo sed -i '/<Directory \/var\/www\/>/,/<\/Directory>/ s/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf
    sudo systemctl restart apache2

    Then check it. Replace FOLDER with cspractice, soletrader or praxis. You should see 403:

    curl -s -o /dev/null -w "%{http_code}\n" http://localhost/FOLDER/includes/licence.php

    The installer's Checks step also tests this for you ("Private folders protected").

Security checklist

Questions

Docker says "permission denied"

Either you haven't logged out and back in since step 1, or you can put sudo in front: sudo docker compose up -d.

Nothing loads in the browser

Run docker compose ps inside the install folder and check it says running, then check the address and port in the table. If another program already uses that port, tell us which product you installed and we will help.

Can I move or rename the installed folder?

Not for the Docker install. Docker remembers where it was installed, so moving or renaming the folder stops it working. Pick the right place the first time.

Which should I choose on a Raspberry Pi?

Both work. Docker (A) is quicker. Standard (B) uses a little less memory, which can matter on an older Pi.

Your records stay with you. Everything is stored on your own computer or server. Keep your own backups, and see the README in the install folder for how.

Do you use A NAS to backup your Linux? as you can also install our software on that.

(Many folks use a Network Attached Storage (NAS) such as Synology or QNAP remote backup disk to copy and protect their data but did you know you can also run our software on it? saving you on SaaS monthly subscription software that doesn’t give you complete control of your own data and can make you reliant on some corporate cloud infrastructure. See our product specific install guides for more info on this as well as being able to install on your web server if you have one.