SaldoVibe är ett gratis, självhostat bokföringsprogram med öppen källkod för svenska aktiebolag och enskilda firmor – BAS-kontoplan, SIE, moms, fakturering, löner med AGI.
翻譯準備中
金融Python · HTMLGitHub @montegrotto上線中營運者未確認
試用過了嗎? 點一下就好,不需要登入。
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Självhostad bokföring för svenska företag – BAS, SIE, moms, löner/AGI, hash-kedjad revisionslogg (Django)
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
SaldoVibe är en Django-baserad bokföringsapp för svenska företag (svenskt gränssnitt, BAS-kontoplan, SIE-import/export, efterlevnad av Bokföringslagen och Skatteverkets krav). Repot innehåller en komplett Docker-uppsättning för drift; utveckling sker direkt mot en lokal virtualenv. Appen är utvecklad för att uppfylla mina egna behov av bokföring, inte för att konkurrera med kommersiella tjänster. Det präglar designen:檢視完整 README ↗
Webbplats och användarhandbok: www.saldovibe.se
SaldoVibe är en Django-baserad bokföringsapp för svenska företag (svenskt gränssnitt, BAS-kontoplan, SIE-import/export, efterlevnad av Bokföringslagen och Skatteverkets krav). Repot innehåller en komplett Docker-uppsättning för drift; utveckling sker direkt mot en lokal virtualenv.
Appen är utvecklad för att uppfylla mina egna behov av bokföring, inte för att konkurrera med kommersiella tjänster. Det präglar designen:
web-containern i stället för via en betald molntjänst, och den externa tidsstämplingen av revisionskedjan använder en fri RFC 3161-tjänst.För hur appen används som slutanvändare, se användarhandboken.
Testningen är inte komplett — appen används i verklig bokföring, men räkna med att det finns buggar, särskilt i mindre använda flöden. Granska alltid genererade rapporter och deklarationsunderlag innan de lämnas in.
Buggar rapporteras som issues på GitHub. Beskriv gärna vilket flöde du var i, vad du förväntade dig och vad som hände i stället. Sårbarheter rapporteras privat enligt SECURITY.md.
Färdigbyggda imager (amd64 och arm64) publiceras på Docker Hub som
montegrotto/saldovibe.
Dockerfile bygger produktionsimagen med Python, Node.js, WhiteNoise och Gunicorn;
docker-compose.yml kör appen med PostgreSQL och nginx.
Servern behöver bara docker-compose.yml och .env — ingen utcheckning (nginx-konfigen ligger inline i compose-filen). Skapa miljöfilen från exemplet och sätt riktiga värden innan stacken startas:
cp .env.example .env
Starta produktionsstacken med den publicerade imagen, eller bygg den själv:
docker compose pull && docker compose up -d
docker compose up --build -d # bygger imagen lokalt från repot
Första användaren skapas i appens eget registreringsflöde
(användarhandboken, kapitel 1). Pinna en version med
SALDOVIBE_VERSION=1.0.0 i .env.
Detta startar fyra tjänster:
web för Django + Gunicorn — inklusive lokal OCR-fältföreslagning för uppladdade bilagor (se attachments/extraction_client.py), ingen separat tjänst behövsdb för PostgreSQLnginx som publik ingång för /, /static/ och /media/scheduler — ofelia, som kör den månatliga återställnings-testkörningen och e-postbilagehämtningen var 15:e minut som cron-jobb inuti webAlla inloggningsuppgifter ligger i .env, inte i compose-filen. Exempelvärdena är platshållare endast för lokalt bruk — byt ut dem innan du driftsätter någonstans på riktigt.
Utveckling sker utan Docker, direkt mot sqlite:
python3.13 -m venv .venv && source .venv/bin/activate
pip install -r requirements-dev.lock
cp .env.example .env # avkommentera DJANGO_DEBUG=1
python manage.py runserver
Lint/formatering upprätthålls med ruff (konfiguration i pyproject.toml) och testsviten körs med Djangos testkörare:
pip install -r requirements-dev.lock
ruff check .
ruff format --check .
python scripts/check_dockerfile_apps.py # Dockerfile måste COPY:a varje Django-app
python scripts/check_requirements_lock.py
npm ci # vendorerade frontend-tillgångar, krävs av collectstatic
python manage.py collectstatic --noinput # testerna körs med DEBUG=False och behöver manifestet
python manage.py test
GitHub Actions kör samma kontroller vid varje push och pull request (.github/workflows/ci.yml).
requirements.txt och requirements-dev.txt listar de direkta beroendena och är filerna du
redigerar. requirements.lock och requirements-dev.lock genereras från dem med varje transitiv
version pinnad och sha256-hashad, och är vad Docker, CI och din virtualenv installerar — så en given
commit ger alltid samma miljö, och ett manipulerat paket får installationen att misslyckas i stället
för att skeppas. Generera om båda efter varje beroendeändring:
uv pip compile requirements.txt --generate-hashes --python-version 3.13 \
--output-file requirements.lock
uv pip compile requirements-dev.txt --generate-hashes --python-version 3.13 \
--output-file requirements-dev.lock
scripts/check_requirements_lock.py (körs av CI och pre-commit-hooken) misslyckas om en
requirements-fil och dess lock-fil inte stämmer överens.
För att köra kontrollerna automatiskt via git-hooks (lint vid commit, tester vid push), aktivera de incheckade hookarna en gång per klon:
git config core.hooksPath .githooks
Använd git push --no-verify för att hoppa över testkörningen i nödfall.
All konfiguration bor i .env (kopiera från .env.example) — compose-filen läser den via
env_file, en bar manage.py runserver via python-dotenv, så inget utom fasta flaggor i stil med
DJANGO_DEBUG ligger inline i YAML-filen. Checka bara in .env.example; håll den riktiga .env
ospårad.
ALLOWED_HOSTS och CSRF_TRUSTED_ORIGINS sätts inte direkt — sätt i stället SALDOVIBE_PUBLIC_URL
(t.ex. http://localhost:8000) så härleder Django båda från den. Använd de explicita variablerna
DJANGO_ALLOWED_HOSTS / DJANGO_CSRF_TRUSTED_ORIGINS endast för driftsättningar med flera domäner; se
docs/ops/environment-variables.md för den fullständiga, samlade
referensen över varje variabel appen läser (Django/nätverk, databas, Skatteverkets API).
För backup/återställning i produktion, driftsättningssteg, migreringar och loggning/övervakning, se docs/ops/.
MIT, se LICENSE. BAS-kontoplanen och annat tredjepartsmaterial i repot har egna villkor, se THIRD_PARTY_NOTICES.md. Bidrag: CONTRIBUTING.md.