Foodsoft is a web-based software for organizing a non-profit food cooperative. In this tutorial, we will guide you on how to install Foodsoft on the latest version of POP! OS.
Before we install Foodsoft, we need to install some required dependencies. Open up your terminal and run the following command:
sudo apt-get update
sudo apt-get install postgresql libpq-dev apache2 curl \
imagemagick libmagickwand-dev libcurl4-gnutls-dev \
libqtwebkit-dev libreadline-dev libncurses5-dev \
libffi-dev libssl-dev
This command installs all the required dependencies needed to run Foodsoft.
Next, we need to install Git, so we can download and install Foodsoft. Run the below command to install Git:
sudo apt-get install git
Foodsoft requires Ruby version 2.3 or higher to run. We will be using RVM (Ruby Version Manager) to install and manage Ruby. Run the following command to install it:
curl -sSL https://get.rvm.io | bash -s stable
This command installs RVM and its dependencies.
After installing RVM, we can install Ruby version 2.3 or higher. Run the following command to install Ruby:
rvm install 2.7.0
This command installs Ruby version 2.7.0. To check if Ruby is installed correctly, run the following command:
ruby -v
This should display the Ruby version installed on your system.
Once we have installed all the required dependencies, we can clone the Foodsoft repository. Run the following command to clone it:
git clone https://github.com/foodcoops/foodsoft.git
This command will create a foodsoft
directory in your current working directory and clone the Foodsoft repository.
Foodsoft requires a PostgreSQL user and database to connect to. Run the following commands to create a database user and database:
sudo su postgres
createuser --pwprompt foodsoft
createdb foodsoft_production --owner=foodsoft
exit
This creates a new PostgreSQL user named foodsoft
with password and a database named foodsoft_production
.
In this step, we will install Bundler and all the Foodsoft dependencies. Run the following commands to install them:
gem install bundler
cd foodsoft
bundle install --without development test
This installs Bundler and all the required dependencies for Foodsoft.
Finally, we can install Foodsoft by running the following commands:
cp config/database.yml.example config/database.yml
nano config/database.yml
This makes a copy of the database.yml.example
file and opens it in the nano text editor.
In the database.yml
file, edit the username
and password
fields with the PostgreSQL credentials we created in Step 6.
Save the file and exit from the nano text editor by pressing Ctrl + X
, then Y
, and then Enter
.
Next, we need to run the following commands to create the database schema and seed the database:
RAILS_ENV=production bundle exec rake db:schema:load
RAILS_ENV=production bundle exec rake db:seed
RAILS_ENV=production bundle exec rake assets:precompile
This creates the database schema, seeds the database, and precompiles the assets.
We need to configure Apache to serve the Foodsoft web interface. Run the following commands to create a new Apache configuration file:
sudo nano /etc/apache2/sites-available/foodsoft.conf
Add the following configuration to the file:
<VirtualHost *:80>
ServerName yourdomain.com
ServerAlias foodsoft
DocumentRoot /var/www/foodsoft/public
PassengerEnabled on
PassengerRuby /usr/local/rvm/bin/ruby
<Directory /var/www/foodsoft/public>
AllowOverride all
Options -MultiViews
Require all granted
</Directory>
</VirtualHost>
Replace yourdomain.com
with your domain name or IP address.
Save the file and exit the nano text editor by pressing Ctrl + X
, then Y
, and then Enter
.
Next, enable the Apache configuration and restart the Apache server:
sudo a2ensite foodsoft.conf
sudo systemctl restart apache2
You can now access Foodsoft by opening a web browser and entering this URL:
http://yourdomain.com
Replace yourdomain.com
with your domain name or IP address.
This will take you to the Foodsoft login page where you can enter your credentials and start using the software.
In this tutorial, we installed Foodsoft on the latest version of POP! OS. You can now start using Foodsoft to organize your non-profit food cooperative.
If you want to self-host in an easy, hands free way, need an external IP address, or simply want your data in your own hands, give IPv6.rs a try!
Alternatively, for the best virtual desktop, try Shells!