Docker-capable Server Ports 80 and 8080 to be opened; 443 for HTTPS 5 minutes of your time
None for the moment, I'm open to suggestions.
Technic Solder is a server-side PHP application based on the Laravel Framework. Its main goal is to provide delta encoded files for the Technic Launcher to process. This can include any type of file. Another goal is to process file check-sums to ensure the receiver is obtaining unaltered files.
More information can be found at: http://docs.solder.io/
First and foremost it's to be simple to configure. It should not require a PHD to be able to setup solder, yet there are quite a few gotchas to be aware of. There are quite a few solder containers in existence, but I have found that they either lack documentation, or have some other weird way of being setup that does not follow the official recommendations.
This command starts your solder container for you. You only need to change the environment variables.
docker run -d --name=solder \
-p 80:80 \
-v /data/docker/solder/repo:/var/www/repo.solder \
-v /data/docker/solder/storage:/var/www/technicsolder/app/storage \
-v /data/docker/solder/public:/var/www/technicsolder/public \
-e "SOLDER_HOST=solder.example.com" \
-e "REPO_HOST=repo.example.com" \
leonime/solder
This container makes only the most minimal options available to ensure easier setup.
The main variables to be concerned about are the following:
Variable name | Default value | Description |
---|---|---|
SOLDER_HOST |
solder.app | The hostname that solder app should have |
REPO_PASSWORD |
solder | The password used when uploading to the file repository |
POSTGRES_USER |
none | The user to access the database |
POSTGRES_PASSWORD |
none | The password for the database user |
POSTGRES_DB |
none | The database to use |
POSTGRES_HOST |
postgres | The database listening address |
POSTGRES_PORT |
5432 | The database listening port |
This are the environment required for the repo.
Variable name | Default value | Description |
---|---|---|
REPO_HOST |
repo.app | The hostname the file repo should have |
REPO_USER |
solder | The username used when uploading to the file repository |
This are the environment required for postgres container.
Variable name | Default value | Description |
---|---|---|
POSTGRES_USER |
none | The user to access the database |
POSTGRES_PASSWORD |
none | The password for the database user |
POSTGRES_DB |
none | The database to use |
All of these volumes should be added to the host, this will ensure a smooth update when a new version of this container is out.
Local path | Container path | Description |
---|---|---|
.data/postgres/data |
/var/lib/postgresql/data/ |
All the database data |
.data/solder/repo |
/var/www/repo.solder |
Storage location for uploaded mod files |
.data/solder/storage |
/var/www/technicsolder/app/storage |
Various specific solder files |
.data/solder/public |
/var/www/technicsolder/public/ |
Various specific solder files |
Here hare some commands to create the folder structure.
mkdir -p ".data/solder/repo"
mkdir -p ".data/solder/public"
mkdir -p ".data/solder/storage"
mkdir -p ".data/postgres/data"
Port number | Description | Recommendation |
---|---|---|
80 | Solder http port. This is where you connection to solder. This should be linked if you want to be able to actually access solder(Which you want) |
Link |
443 | Solder https port. Optional; SSL encrypted connection to your solder server. | Link |
This container is made of the following components:
Alpine Linux as a base image
Nginx as webserver
PostgreSQL as database
GFS as file server (This is a replacement for FTP, and works entirely through your browser.)