Skip to content

Installation

Nicolas edited this page Mar 28, 2022 · 4 revisions

There a three installation methods :

Alternatively, application can be run under Docker.

Installation from automatic installer (recommended)

  • Install system prerequisites

  • Open a shell and launch the following command (download and execute installer) as root:

    wget https://raw.githubusercontent.com/nioc/own-my-money/master/installer.php && su www-data -s /bin/sh -c "php installer.php"
    
  • Restart Apache:

    service apache2 restart
    
  • Complete the setup form in your browser https://money.yourdomain.ltd/#/setup

Installation from release archive

  • Install system prerequisites

  • Get the latest archive from https://github.com/nioc/own-my-money/releases/latest and download the build archive, for example with a 1.0.0 file:

    wget https://github.com/nioc/own-my-money/releases/download/1.0.0/own-my-money-1.0.0.tar.gz -O /var/tmp/own-my-money.tar.gz
    
  • Go into your web folder and unarchive it:

    cd /var/www &&
    tar -xvzf /var/tmp/own-my-money.tar.gz
    
  • Change the back-end host (for example replace https://localhost by https://money.yourdomain.ltd):

    cd /var/www/own-my-money/money-front-vue/dist/static/js/ &&
    find . -name "*" -type f -exec sed -i "s/http:\/\/localhost/https:\/\/money.yourdomain.ltd/g" {} \;
    
  • Create the public folder:

    mkdir /var/www/own-my-money/dist
    
  • Create a symoblic link to the back-end folder:

    ln -s /var/www/own-my-money/server /var/www/own-my-money/dist/server
    
  • Set the correct permissions for your HTTP user (www-data, apache, ...):

    chown www-data /var/www/own-my-money/dist/ -RL
    
  • Restart Apache:

    service apache2 restart
    
  • Complete the setup form in your browser https://money.yourdomain.ltd/#/setup

Installation from source code

  • Install system prerequisites

  • Install build prerequisites :

    • Git and curl
    apt-get install git curl
    
    • Node.js :

      curl -sL https://deb.nodesource.com/setup_10.x | bash -
      apt-get install -y nodejs
      
    • npm

    npm install npm@latest -g
    
    • Vue.js
    npm install -g vue
    
    • Vue-cli
    npm install -g vue-cli
    
  • Clone git repo:

    git clone https://github.com/nioc/own-my-money.git /var/www/own-my-money
    
  • Go to the front-end folder:

    cd /var/www/own-my-money/money-front-vue
    
  • Edit the back-end endpoint (API_URL):

    nano /var/www/own-my-money/money-front-vue/src/services/Config.js
    
  • Install dependencies

    npm install
    
  • Build the front-end

    npm run build
    
  • Create the public folder

    mkdir /var/www/own-my-money/dist
    
  • Create a symoblic link to the back-end folder:

    ln -s /var/www/own-my-money/server /var/www/own-my-money/dist/server
    
  • Set the correct permissions for your HTTP user (www-data, apache, ...):

    chown www-data /var/www/own-my-money/dist/ -RL
    
  • Restart Apache:

    service apache2 restart
    
  • Complete the setup form in your browser https://money.yourdomain.ltd/#/setup

Running under Docker

Setup

Using Docker you do not have to install PHP, Apache or MariaDB on your server, only a Docker/Swarm engine

Docker image contains Apache webserver with PHP exposing standard HTTP port (80), you should use a proxy like HAProxy or Traefik for SSL encryption

  • Create a docker-compose-omm.yml file:

    version: "3.4"
    
    services:
      own-my-money:
        image: nioc/own-my-money:latest
        ports:
          - "80:80"
        environment:
          TZ: Europe/Paris
          # API endpoint, if you use a proxy for SSL, set scheme to https
          OMM_BASE_URI: https://money.yourdomain.ltd
          # Database hostname
          OMM_DB_HOST: db
          # Database user and password
          OMM_DB_USER: moneyuser
          OMM_DB_PWD: moneypWd
          # Database name
          OMM_DB_NAME: money
          # Set to 1 for sending mails
          OMM_MAILER: 0
          # Sender email address
          OMM_MAIL_SENDER: [email protected]
          # Hash used to sign user tokens
          OMM_HASH_KEY: youSuperKeyWithSpۍ@l$
          # Uncomment after completing setup
          # OMM_SETUP: 1
    
      # not required if you already have MariaDB/MySQL database
      db:
        image: mariadb:10
        restart: always
        ports:
          - "3306:3306"
        environment:
          MYSQL_ROOT_PASSWORD: yourMariaAdminPwd
        volumes:
          # You can also use named volumes instead of mount host paths
          - ../db:/var/lib/mysql
  • Start container(s) with docker-compose or docker-stack

    docker-compose -f docker-compose-omm.yml -p own-my-money up
    
  • Complete the setup form in your browser https://money.yourdomain.ltd/#/setup

  • Uncomment the environment variable OMM_SETUP: 1 and restart Apache service:

    docker-compose -f docker-compose-omm.yml up -d own-my-money
    

Update image

  • Pull the latest image:

    docker pull nioc/own-my-money:latest
    
  • Restart service:

    docker-compose -f docker-compose-omm.yml up -d own-my-money