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.
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.
StandardUses 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.
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.
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.)
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.
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.
| Product | Open it in your browser at |
|---|---|
| CrystalSolutions | http://localhost:8080/cspractice |
| SoleTrader | http://localhost:8081/soletrader |
| PraxisClinic | http://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.
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.
LAMP means Linux, Apache, MySQL and PHP. If your server already runs a website, you almost certainly have most of it.
/var/www/html).The guide takes you through installing Apache, PHP and MySQL, creating the database, and running the web installer:
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").
403.Either you haven't logged out and back in since step 1, or you can put sudo in front: sudo docker compose up -d.
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.
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.
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.