owncryptofolio

owncryptofolio

Docker app from Vanix's Repository

Overview

Self-hosted crypto portfolio tracker with German tax reports. Reads exchanges (API or export file), 35 blockchain networks and your own files, merges them into one history, values everything with stored prices and shows holdings, profit and loss, the yearly German tax report (Excel/PDF) and a source-of-funds statement. Needs a PostgreSQL container. English and German interface.

Selbst gehosteter Krypto-Portfolio-Tracker mit deutschem Steuerbericht. Braucht einen PostgreSQL-Container.

Installing and updating on Unraid

owncryptofolio runs as one container in Unraid's Docker tab. It also needs a PostgreSQL database, most simply as a container of its own.

1. Database (if you have none yet)

Under Apps (Community Applications), search for postgresql18 and install it. Give POSTGRES_PASSWORD a long password and keep port 5432. Turn on autostart.

An existing PostgreSQL up to version 18 works just as well. owncryptofolio creates its database itself on the first start.

2. Add owncryptofolio

Through Apps: search for owncryptofolio and click Install.

As long as it is not listed there yet: fetch the template once by hand. In the Unraid terminal (the >_ symbol at the top right):

wget -O /boot/config/plugins/dockerMan/templates-user/my-owncryptofolio.xml \
  https://raw.githubusercontent.com/Vanixxx/owncryptofolio/main/src/deploy/unraid/template.xml

Then Docker tab → Add Container → template “owncryptofolio”.

Either way, you fill in:

Field What goes in
Web UI port 8085 or another free port
Data /mnt/user/appdata/owncryptofolio: holds the keys, back it up!
Backups a folder for the encrypted backups, ideally on a share you back up off the server
Database: host the IP of your Unraid server (for a PostgreSQL container in bridge mode)
Database: port / name / user 5432 / owncryptofolio / postgres
Database: password the database password (shown masked)

Apply. After about a minute owncryptofolio is reachable at http://<unraid-ip>:8085. Continue with the first start. If needed, the log shows the setup code (Docker tab → click the owncryptofolio icon → Logs).

Updating to a new version

Unraid checks for a new image on its own. The Docker tab then shows “update ready” for owncryptofolio: click it → Update. To check by hand, use Check for Updates at the bottom. Data, keys and backups stay where they are.

The database is brought up to date automatically at start. Which version is running is shown under System status. What is new: What's new.

Good to know

  • Back up the appdata/owncryptofolio folder too. You need the keys in it to read backups and stored API credentials.
  • The Docker tab shows owncryptofolio as “healthy” as long as the database is reachable.
  • Turn on Autostart for the PostgreSQL container and for owncryptofolio (Docker tab). Then everything comes back on its own after a power cut.
  • If owncryptofolio starts before the database, the page shows “No connection to the database” and tries again every few seconds. As soon as the database is there, it opens on its own, and fetches, prices and backups run again. The same happens if the database goes away while running.
  • A second owncryptofolio must not run on the same database: fetches and backups would be triggered twice.
  • Every container setting is explained in Installing with Docker.

Media gallery

1 / 3

Requirements

A PostgreSQL container (version 18 or older), e.g. "postgresql18" from Community Applications.

Related apps

Details

Repository
ghcr.io/vanixxx/owncryptofolio:latest
Last Updated2026-10-31
First Seen2026-10-31

Runtime arguments

Web UI
http://[IP]:[PORT:8080]/
Network
bridge
Shell
sh
Privileged
false
Extra Params
--restart=unless-stopped

Template configuration

Web UI portPorttcp

Port of the web interface in your network

Target
8080
Default
8085
Value
8085
Data (keys, originals, logs)Pathrw

Holds the keys - include it in your backups!

Target
/data
Default
/mnt/user/appdata/owncryptofolio
Value
/mnt/user/appdata/owncryptofolio
BackupsPathrw

Encrypted backups; better a share that is backed up off the server

Target
/backups
Default
/mnt/user/appdata/owncryptofolio-backups
Value
/mnt/user/appdata/owncryptofolio-backups
Database: hostVariable

IP or name of the PostgreSQL server (Unraid IP for a PostgreSQL container on bridge)

Target
DB_HOST
Database: portVariable
Target
DB_PORT
Default
5432
Value
5432
Database: nameVariable

Created on the first start if missing

Target
DB_NAME
Default
owncryptofolio
Value
owncryptofolio
Database: userVariable

Needs the right to create a database (CREATEDB)

Target
DB_USER
Default
postgres
Value
postgres
Database: passwordVariable
Target
DB_PASSWORD
PUIDVariable

User the app runs as; 99 = nobody (Unraid default)

Default
99
Value
99
PGIDVariable

Group the app runs as; 100 = users (Unraid default)

Default
100
Value
100
Time zoneVariable

Time stamps in the log; the interface has its own setting

Target
TZ
Default
Europe/Berlin
Value
Europe/Berlin