@ubud-app/server

A small private software for budgeting

Usage no npm install needed!

<script type="module">
  import ubudAppServer from 'https://cdn.skypack.dev/@ubud-app/server';
</script>

README





Status npm version npm dependency status Docker Image Size

🚨 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

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
wget https://raw.githubusercontent.com/ubud-app/server/develop/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.

⏱ Roadmap

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

👩‍⚖️ Legal Stuff