Skip to content
Contains the server part of ubud project.
JavaScript Dockerfile
Branch: develop
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
.idea 😍 UnitTypes Feb 13, 2019
logic ⚙️ TransactionLogic: add reconciling attribute Nov 10, 2019
.dockerignore 🍿 Travis CI -> GitLab CI Jan 20, 2018
.gitlab-ci.yml 🤖 CI: retry builds (because of temp access error) Aug 26, 2019
Dockerfile 🐳 Dockerfile: use latest npm version Aug 11, 2019 📑 docker-compose Jul 30, 2019 📑 Readme: Updated Screenshot Sep 7, 2019 📑 docker-compose Jul 30, 2019
docker-compose.yml 📑 docker-compose Jul 30, 2019
package-lock.json 📦 Update Dependencies Nov 20, 2019
server.js 🎉 ubud Jul 29, 2019

Status npm version

🚨 Warning

This software is still in a very early stage (early preview). Errors can occur at any time. Therefore ubud should currently not be used productively, but only for testing purposes.

🧐 What's this?

This repository contains the software ubud, a small private software for budgeting. ubud works according to the envelope method and can be extended with plugins, so that turnovers of accounts can be imported automatically. So that your data doesn't buzz around in some clouds, ubud is a self-hosted software. Install ubud on a Raspberry Pi or on any NAS with docker support.

🖼 Screenshot


🎉 Features

  • self-hosted software, no private data in the cloud
  • web interface optimized for mobile devices
  • Budgeting via envelope method
  • Synchronization with banks possible with plugins
  • Multi-user capable

🐳 Quick Start

The easiest way to test ubud is Docker. If you don't have Docker installed on your system yet, you can do this with this guide.

You need a database where all the data is stored. Currently MySQL and MariaDB are supported. Docker images are currently available for ARM and AMD64.

# Download docker-compose.yml

# Edit environment variables
nano docker-compose.yml

# Start ubud
docker-compose up -d

# Get initial login credentials
docker logs -f $(docker-compose ps -q ubud) | docker-compose exec -T ubud \
    ./node_modules/bunyan/bin/bunyan -o short --color -l info

🔧 Configuration

Environment Variable Default Value Description
DATABASE mysql://localhost/ubud Database Connection URI
SENTRY_DSN - Sentry DSN, overwrite to use a custom Sentry Instance
PORT 8080 Port to listen on
DEVELOP 0 Run in develop mode

💬 Feedback & Help

For the early preview there are no issues possible, because I want to get the software to work well with it. However, questions and feedback can still be passed on. Either via Twitter @ubudapp or in our Slack-Channel.

🛠 Build a Plugin

Plugins can be installed via the ubud user interface. These are written in node.js. There are three types of plugins, whereby one plugin can implement several types:

  • Account Plugin: Allows you to synchronize one or more accounts with ubud. Example: Plugin for a bank
  • Metadata Plugin: Enables metadata to be automatically added to a transaction. Example: Plugin that automatically splits the transaction between the different products for online shop orders.
  • Goal Plugin: Allows you to automatically add saving targets to a document. Example: Synchronize wish lists of an online shop

The development of a plugin is currently still a bit hairy, since there is still no documentation and no tools to help. If you still don't want to wait, please feel free to contact us via Slack or Twitter.


During the Early Preview you can find a very rough roadmap on GitHub.

👩‍⚖️ Legal Stuff

You can’t perform that action at this time.