First, let me be 150% frank here: FOSS developers should be paid for work. Period. End of conversation. This article provides install instructions for those trying out the software. If you intend to use it in any capacity afterwards, please either pay for a support subscription, or toss a couple dollars at the developers for making something you can use.
If you are on a modern Debian-based Linux, please feel free to download the asm3 package from their website. We will run with the assumption that you are for the rest of this guide, but gathering and installing dependencies on other systems shouldn’t be hard, as they are listed in the README.
The only other requirement is a database server. ASM supports PostgreSQL, MySQL (and MariaDB by extension), and SQLite. These can be installed either on a remote system or on the local system. In this tutorial, we’ll assume you are installing to the local system, but setup would be identical.
# download ASM3
# install ASM3 and PostgreSQL
sudo apt install ./sheltermanager3_44_all.deb postgresql
# install some required apache things due to asm3 package not including them
# literally despite the README saying they are included
sudo apt install apache2 libapache2-mod-wsgi-py3
# enable the new module and the asm3 site
sudo a2enmod wsgi
sudo a2ensite asm3
# enable and start apache2 httpd
sudo systemctl enable apache2
sudo systemctl start apache2
Okay, so now you should have a base configuration asm3 install. It will work, but you won’t be able to complete setup because no database is configured.
# enable and start postgresql
sudo systemctl enable postgresql
sudo systemctl start postgresql
Now lets create a user and database for the ASM.
# become postgres user
sudo -u postgres -i
# create asm postgresql user
createuser --pwprompt asm
# create asm database
createdb --owner=asm asm
# add asm to login file
printf "host\tasm\tasm\t127.0.0.1/32\tpassword" | \
sudo tee /etc/postgresql/12/main/pg_hba.conf
Now modify the database configuration of asm3, which is located at
/etc/asm3.conf. It should look like:
db_type = POSTGRESQL # MYSQL, POSTGRESQL, SQLITE or DB2
db_host = localhost # or an IP if you're using a remote system
db_port = 5432
db_username = asm
db_password = somePasswordHere
db_name = asm
Starting the System⌗
Before we really dig into the system, there are two more configuration items
that desperately need attention in
I’ve configured mine with the internal IP of the ASM system, then when I deployed it, as ASM will always auto-redirect to this URL.
For setup, you should use:
base_url = http://192.168.0.199/
service_url = http://192.168.0.199/service
Then restart apache2 using
systemctl and navigate to the ASM machine’s IP.
It will auto redirect you to the
/database endpoint and create your database.
Once that’s done, you can login and manage the system.
Don’t forget to change the
service_url before moving to
production. Enabling the apache site
default-ssl.conf, will also enable ssl
on the system. You will again have to change
use https instead of http.