Actual Budget ను మీ సొంత VPS లో హోస్ట్ చేయడం ఎలా?
Docker Compose ఉపయోగించి Actual Budget ను VPS లో సెటప్ చేయండి. HTTPS అవసరం, డేటా వాల్యూమ్ కాన్ఫిగరేషన్, బ్యాంక్ ఇంపోర్ట్స్ మరియు బ్యాకప్ పద్ధతుల గురించి పూర్తి వివరాలు ఇక్కడ ఉన్నాయి.
మీరు ఏమి నిర్మిస్తున్నారు
Actual Budget అనేది self-hosted పద్ధతిలో పనిచేసే ఒక ఎన్వలప్ బడ్జెటింగ్ అప్లికేషన్. మీరు సొంతంగా హోస్ట్ చేసుకోగల YNAB ప్రత్యామ్నాయం కోసం వెతుకుతున్నప్పుడు, ఇది సాధారణంగా అందరూ సూచించే పరిష్కారం. ఈ సర్వర్ ఒక కంటైనర్, ఒక డేటా వాల్యూమ్ మరియు ఒక HTTPS పేరుతో పనిచేస్తుంది. ఒక సాధారణ బడ్జెట్ అప్లికేషన్కు అవసరమైనవన్నీ మీరు అద్దెకు తీసుకోగల అతి చిన్న VPS లోనే సజావుగా నడుస్తాయి, ఎందుకంటే ఈ సర్వర్ ప్రధానంగా ఫైళ్లను నిల్వ చేయడానికి మరియు వాటిని సింక్ (sync) చేయడానికి మాత్రమే ఉపయోగపడుతుంది.
మీరు ఏదైనా టైప్ చేయడానికి ముందు ఈ ఆర్కిటెక్చర్ను అర్థం చేసుకోవడం మంచిది. బడ్జెట్ అనేది మీ బ్రౌజర్లో మరియు ప్రతి మొబైల్ యాప్లో ఉండే ఒక SQLite డేటాబేస్. మీరు ఇప్పుడు ఇన్స్టాల్ చేయబోయే సర్వర్ ఒక సింక్ ఎండ్పాయింట్ (sync endpoint): ఇది ఖాతాల జాబితా, బడ్జెట్ ఫైళ్లు మరియు ఫోన్ లేదా ల్యాప్టాప్ మధ్య డేటాను సమన్వయం చేసే చేంజ్ లాగ్ను కలిగి ఉంటుంది. అందుకే సర్వర్ డౌన్ అయినప్పుడు కూడా యాప్ పనిచేస్తుంది, మరియు ఒక క్లయింట్ వద్ద కాపీ ఉన్నంత వరకు సర్వర్ పోయినా మీ బడ్జెట్ డేటా సురక్షితంగానే ఉంటుంది.
సర్వర్కు HTTPS ఎందుకు అవసరం
Actual కు HTTPS తప్పనిసరి, ఇది కేవలం ఒక లాంఛనం మాత్రమే కాదు. బ్రౌజర్లు Web Crypto API ని కేవలం secure context అని పిలిచే పరిసరాలలో మాత్రమే అనుమతిస్తాయి; Actual తన ఎండ్-టు-ఎండ్ ఎన్క్రిప్షన్ కోసం దీనినే ఉపయోగిస్తుంది. Secure context అంటే https:// లేదా http://localhost మాత్రమే. మీరు మరొక మెషీన్లోని బ్రౌజర్లో http://203.0.113.10:5006 ద్వారా యాప్ను లోడ్ చేస్తే, ఆ ఫీచర్లు అందుబాటులో ఉండవు, ఎందుకంటే బ్రౌజర్ ఆ పేజీకి ఆ సామర్థ్యాలను అందించదు. అధికారిక మొబైల్ బిల్డ్లు కూడా సాధారణ http:// సర్వర్ URLలను అంగీకరించవు.
కాబట్టి, రెండు ఆచరణాత్మక పద్ధతులు ఉన్నాయి. కంటైనర్కు ముందు ఒక నిజమైన డొమైన్ పేరుతో, సరైన సర్టిఫికేట్ను అమర్చడం - ఈ గైడ్ ఇదే చేస్తుంది. లేదా ACTUAL_HTTPS_KEY మరియు ACTUAL_HTTPS_CERT ఉపయోగించి సర్వర్కు self-signed సర్టిఫికేట్ను జారీ చేయడం (దీని గురించి ప్రాజెక్ట్ డాక్యుమెంటేషన్లో ఉంది), కానీ దీనివల్ల ప్రతి పరికరంలోనూ బ్రౌజర్ హెచ్చరికను మీరు అంగీకరించాల్సి ఉంటుంది. Let's Encrypt నుండి ఉచిత సర్టిఫికేట్ పొందడానికి కేవలం ఐదు నిమిషాలు మాత్రమే పడుతుంది, కాబట్టి మొదటి పద్ధతినే ఎంచుకోండి.
Docker Compose తో Actual Budget ను ఇన్స్టాల్ చేయడం
మీ సర్వర్ కొత్తదైతే ముందుగా Docker ను ఇన్స్టాల్ చేయండి. మీకు Compose ఫైల్ సింటాక్స్ కొత్తగా ఉంటే, Docker Compose basics for a VPS గైడ్ ఇక్కడ ఉపయోగించిన ఫీల్డ్స్ గురించి వివరిస్తుంది.
sudo install -d -m 755 /opt/actual
sudo install -d -m 700 /opt/actual/data/opt/actual/docker-compose.yml ఫైల్ను ఇలా రాయండి:
services:
actual:
image: actualbudget/actual-server:latest
container_name: actual
restart: unless-stopped
ports:
- '127.0.0.1:5006:5006'
volumes:
- ./data:/dataఈ ఫైల్లో మూడు ముఖ్యమైన వివరాలు ఉన్నాయి.
ఇమేజ్ actualbudget/actual-server:latest, దీనిని ప్రాజెక్ట్ వారు Docker Hub లో పబ్లిష్ చేశారు మరియు ghcr.io/actualbudget/actual లో మిర్రర్ చేశారు. తక్కువ సామర్థ్యం గల మెషీన్ల కోసం latest-alpine ట్యాగ్ అందుబాటులో ఉంది.
కంటైనర్ తన డేటా మొత్తాన్ని /data లోపల రాస్తుంది. దాని లోపల మీకు server-files లభిస్తుంది, ఇందులో మీ లాగిన్ మరియు సెషన్ టోకెన్లు ఉండే account.sqlite ఉంటాయి, అలాగే బడ్జెట్ ఫైల్స్ ఉండే user-files ఉంటుంది. ఆ పాత్ను మౌంట్ చేయండి, లేదంటే docker compose pull మీ బడ్జెట్ డేటాను తొలగిస్తుంది. ACTUAL_DATA_DIR ద్వారా మీరు దానిని మార్చుకోవచ్చు, కానీ డిఫాల్ట్ సెట్టింగ్ సరిపోతుంది.
పోర్ట్ కేవలం 127.0.0.1 పై మాత్రమే పబ్లిష్ చేయబడింది. కేవలం 5006:5006 అని ఇస్తే అది ప్రతి ఇంటర్ఫేస్పై పబ్లిష్ అవుతుంది, మరియు Docker తన సొంత రూల్స్ను ufw కంటే ముందుగా రాస్తుంది, కాబట్టి deny-all ఫైర్వాల్ ఉన్నప్పటికీ అప్లికేషన్ ఇంటర్నెట్కు బహిర్గతమవుతుంది. ఈ సమస్య గురించి why Docker published ports bypass ufw లో వివరించబడింది. లూప్బ్యాక్ (loopback) కు బైండ్ చేయడం అంటే, అదే సర్వర్పై ఉన్న రివర్స్ ప్రాక్సీ మాత్రమే దీనిని చేరుకోగలదని అర్థం.
దీనిని ప్రారంభించండి:
cd /opt/actual
docker compose up --detach
docker compose logs -f actualసర్వర్ 5006 పోర్ట్పై వింటున్నట్లు (listening) రిపోర్ట్ చేసిన తర్వాత లాగ్ స్థిరపడుతుంది. DNS సెట్టింగ్స్ మార్చే ముందు స్థానికంగా ఇలా తనిఖీ చేయండి:
curl -fsS -o /dev/null -w '%{http_code}\n' http://127.0.0.1:5006/200 అంటే అప్లికేషన్ రన్ అవుతోందని అర్థం. curl: (7) Failed to connect అంటే కంటైనర్ రన్ అవ్వడం లేదని అర్థం, మరియు docker compose ps అది ఎగ్జిట్ అయిందని చూపిస్తుంది. సాధారణంగా మౌంట్ చేసిన వాల్యూమ్పై పర్మిషన్ సమస్యల వల్ల ఇలా జరుగుతుంది, ఇది లాగ్లో EACCES లైన్గా కనిపిస్తుంది.
సర్టిఫికేట్ మరియు రియల్ నేమ్ను ముందు ఉంచడం
VPS వైపు ఒక A record ను పాయింట్ చేయండి, budget.example.com, మరియు అది resolve అయ్యే వరకు వేచి ఉండండి. ఆ తర్వాత nginx ను ఇన్స్టాల్ చేసి సర్టిఫికేట్ను జారీ చేయండి. Certbot on Ubuntu 24.04 with nginx గైడ్ సర్టిఫికేట్ జారీ మరియు renewal టైమర్ గురించి పూర్తి వివరాలను అందిస్తుంది.
ప్రాక్సీ బ్లాక్:
server {
listen 443 ssl;
http2 on;
server_name budget.example.com;
ssl_certificate /etc/letsencrypt/live/budget.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/budget.example.com/privkey.pem;
client_max_body_size 100m;
location / {
proxy_pass http://127.0.0.1:5006;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}client_max_body_size అనేది చాలామంది మర్చిపోయే లైన్. పూర్తి సింక్ (full sync) సమయంలో బడ్జెట్ ఫైల్ మొత్తం అప్లోడ్ అవుతుంది. Nginx డిఫాల్ట్గా 1 MB రిక్వెస్ట్ బాడీని అనుమతిస్తుంది, కాబట్టి ఫైల్ పరిమాణం అంతకంటే పెరిగినప్పుడు, nginx యాక్సెస్ లాగ్లో 413 Request Entity Too Large కనిపిస్తుంది మరియు అప్లికేషన్ సాధారణ సింక్ ఎర్రర్ను మాత్రమే చూపిస్తుంది. సర్వర్కు దాని స్వంత పరిమితులు ఉంటాయి: ACTUAL_UPLOAD_FILE_SYNC_SIZE_LIMIT_MB డిఫాల్ట్గా 20 మరియు ACTUAL_UPLOAD_SYNC_ENCRYPTED_FILE_SYNC_SIZE_LIMIT_MB డిఫాల్ట్గా 50 ఉంటాయి, కాబట్టి మీకు వర్తించే దానికంటే ఎక్కువ పరిమితిని nginx లో సెట్ చేయండి.
రీలోడ్ చేసి పరీక్షించండి:
sudo nginx -t && sudo systemctl reload nginx
curl -fsS -o /dev/null -w '%{http_code}\n' https://budget.example.com/మొదటి రన్: పాస్వర్డ్ మరియు మీ మొదటి బడ్జెట్ ఫైల్
బ్రౌజర్లో https://budget.example.com ని తెరవండి. సర్వర్ పాస్వర్డ్ను సెట్ చేయమని మొదటి స్క్రీన్ అడుగుతుంది. ఆ ఒక్క పాస్వర్డ్ మొత్తం సర్వర్ను రక్షిస్తుంది, కాబట్టి పొడవైన మరియు యాదృచ్ఛికమైన (random) పాస్వర్డ్ను రూపొందించండి. దీన్ని self-hosted Vaultwarden పాస్వర్డ్ మేనేజర్ వంటి సురక్షితమైన చోట భద్రపరచుకోండి. ఇక్కడ సృష్టించడానికి ప్రత్యేక యూజర్ ఖాతాలు ఏవీ ఉండవు. Actual సర్వర్ డిజైన్ ప్రకారం ఒకే పాస్వర్డ్తో పనిచేస్తుంది, కాబట్టి బడ్జెట్ను ఇతరులతో పంచుకోవాలంటే ఆ పాస్వర్డ్ను కూడా పంచుకోవాల్సి ఉంటుంది.
తర్వాత ఒక బడ్జెట్ ఫైల్ను సృష్టించండి. ఎండ్-టు-ఎండ్ ఎన్క్రిప్షన్ను ఎనేబుల్ చేయాలా అని Actual అడుగుతుంది. అవును అని ఎంచుకోండి; దీనివల్ల సర్వర్లో కేవలం ciphertext మాత్రమే నిల్వ చేయబడుతుంది. అద్దెకు తీసుకున్న మెషీన్లో ఆర్థిక డేటాను ఉంచడానికి ఇదే సరైన పద్ధతి. దీనికి ఒక ముఖ్యమైన నిబంధన ఉంది: ఎన్క్రిప్షన్ పాస్వర్డ్ సర్వర్కు ఎప్పటికీ చేరదు, కాబట్టి మీరు దాన్ని పోగొట్టుకుంటే ఫైల్ శాశ్వతంగా కోల్పోతారు మరియు దీన్ని రీసెట్ చేసే అవకాశం ఉండదు. ఆ స్క్రీన్ను దాటడానికి ముందే పాస్వర్డ్ను ఎక్కడైనా రాసి పెట్టుకోండి.
సంవత్సరాల తరబడి ఉన్న హిస్టరీని ఇంపోర్ట్ చేసే బదులు, మీ బ్యాంక్ ఖాతాలో ప్రస్తుతం ఉన్న నిల్వల (balances) తో ప్రారంభించండి. ఎన్వలప్ బడ్జెటింగ్ పద్ధతి మీ దగ్గర ప్రస్తుతం ఉన్న డబ్బుతో ముందుకు సాగుతుంది, కాబట్టి పాత హిస్టరీ లేకపోయినా మీకు ఎటువంటి నష్టం ఉండదు.
లావాదేవీలను నమోదు చేయడం
ఇక్కడ ఉత్సాహం కంటే నిజాయితీ ముఖ్యం, ఎందుకంటే self-hosted బడ్జెట్ అప్లికేషన్లను వాడటం మానేయడానికి ప్రధాన కారణం డేటా ఇంపోర్ట్ ప్రక్రియే.
మాన్యువల్ ఎంట్రీ అనేది ప్రాథమిక పద్ధతి మరియు ఇది ఎల్లప్పుడూ పనిచేస్తుంది. ఎన్వలప్ పద్ధతిని అనుసరించే వారికి ఇది చాలా అవసరం, ఎందుకంటే మీరు చేసే ఖర్చును మీరే టైప్ చేయడం వల్ల దానిపై మీకు అవగాహన పెరుగుతుంది.
ఫైల్ ఇంపోర్ట్ ద్వారా ఎక్కువ మొత్తంలో డేటాను నమోదు చేయవచ్చు. Actual అప్లికేషన్ CSV, QIF, OFX మరియు QFX ఫార్మాట్లను చదవగలదు, ప్రతి బ్యాంక్ కనీసం వీటిలో ఒక ఫార్మాట్ను ఎగుమతి చేసే సదుపాయాన్ని కల్పిస్తుంది. అకౌంట్ స్క్రీన్ నుండి ప్రతి అకౌంట్కు విడివిడిగా ఇంపోర్ట్ చేయండి, కాలమ్స్ను ఒకసారి మ్యాప్ చేయండి; ఆ అకౌంట్ కోసం Actual ఆ లేఅవుట్ను గుర్తుంచుకుంటుంది.
ఆటోమేటిక్ బ్యాంక్ సింక్ సదుపాయం ఉంది, కానీ దీని కోసం థర్డ్-పార్టీ సర్వీస్ అవసరం, ఎందుకంటే సర్వర్ నేరుగా బ్యాంకులతో కమ్యూనికేట్ చేయలేదు. Actual అప్లికేషన్ ఉత్తర అమెరికా బ్యాంకులకు SimpleFIN Bridge, యూరప్కు Enable Banking, న్యూజిలాండ్కు Akahu మరియు బ్రెజిల్కు Pluggy.ai సేవలను సపోర్ట్ చేస్తుంది. GoCardless ఇప్పటికీ సపోర్ట్ చేయబడుతోంది కానీ కొత్త అకౌంట్లను అనుమతించడం లేదు. మీరు ఆ ప్రొవైడర్ వద్ద సైన్ అప్ అయ్యి, క్రెడెన్షియల్స్ జనరేట్ చేసి, వాటిని సర్వర్లో యాడ్ చేయాలి. జూలై 2026 నాటికి, SimpleFIN Bridge గరిష్టంగా 25 సంస్థల కోసం సంవత్సరానికి 15 US డాలర్ల ఛార్జీని వసూలు చేస్తోంది, ఇతర సేవలకు ధరలు వేరుగా ఉంటాయి.
దీనిపై ఆధారపడే ముందు రెండు పరిమితులను గమనించాలి. API క్రెడెన్షియల్స్ సర్వర్లోనే ఉంటాయి మరియు ఇవి end-to-end encryption పరిధిలోకి రావు, ఎందుకంటే సర్వర్ వీటిని ఉపయోగించాల్సి ఉంటుంది. అలాగే Actual ఆటోమేటిక్గా డేటాను సేకరించదు (poll చేయదు): సింక్ అనేది మీరు బటన్ నొక్కినప్పుడు మాత్రమే జరుగుతుంది, ఇది బ్యాక్గ్రౌండ్ జాబ్ కాదు.
బ్యాకప్లు, ఎందుకంటే ఇవి కేవలం ఫైళ్లు మాత్రమే
మీకు ముఖ్యమైనవన్నీ /opt/actual/data డైరెక్టరీలోనే ఉంటాయి. దీని కోసం ప్రత్యేకమైన ఎగుమతి (export) ప్రక్రియ లేదా డేటాబేస్ డంప్ స్క్రిప్ట్ అవసరం లేదు.
ఇక్కడ ఉన్న ఒకే ఒక ఇబ్బంది SQLite. సర్వర్ డేటాను రాస్తున్న సమయంలో account.sqlite ఫైల్ను కాపీ చేస్తే, అది అసంపూర్ణమైన ట్రాన్సాక్షన్ను కాపీ చేసే అవకాశం ఉంది; మీరు రీస్టోర్ చేయడానికి ప్రయత్నించే వరకు ఆ లోపం మీకు తెలియదు. కాపీ చేయడానికి పట్టే కొద్ది సెకన్ల పాటు కంటైనర్ను ఆపివేయండి:
cd /opt/actual
docker compose stop
restic -r sftp:backup@backup.example.com:/srv/restic backup /opt/actual/data
docker compose startదీనిని restic backups on a VPS లో వివరించిన పద్ధతిలో షెడ్యూల్ చేయండి. ఆ పద్ధతిలో రిపోజిటరీ సెటప్, రిటెన్షన్ మరియు రీస్టోర్ డ్రిల్ గురించి సమాచారం ఉంటుంది. రీస్టోర్ డ్రిల్ను తప్పనిసరిగా నిర్వహించండి. మీరు ఎప్పుడూ రీస్టోర్ చేసి చూడని బ్యాకప్ కేవలం ఒక అంచనా మాత్రమే.
Actual యొక్క క్లయింట్-సైడ్ బ్యాకప్లు వేరే విషయం మరియు వాటి గురించి తెలుసుకోవడం మంచిది. బ్రౌజర్ బడ్జెట్ ఫైల్ యొక్క ఇటీవలి కాపీలను ఉంచుతుంది, వీటిని ఫైల్ మెనూ నుండి యాక్సెస్ చేయవచ్చు. సర్వర్తో సంబంధం లేకుండానే "నేను పొరపాటున ఒక కేటగిరీని తొలగించాను" వంటి సమస్యలను ఇది పరిష్కరిస్తుంది.
సర్వర్ను అప్డేట్ చేయడం
cd /opt/actual
docker compose pull
docker compose up --detachCompose కొత్త image నుంచి container ను మళ్లీ సృష్టించి, అదే volume ను తిరిగి జతచేస్తుంది. అందువల్ల data నిలిచి ఉంటుంది. Clients ను కూడా update చేయండి. Server మరియు app versions సాధారణంగా దగ్గరగా ఉండాలి. Server కంటే చాలా పాత client version mismatch సందేశంతో sync ను తిరస్కరించవచ్చు. Major version jump కు ముందు backup తీసుకోండి. ఎందుకంటే మొదటి start సమయంలో migrations అమలవుతాయి. Downgrade చేయడానికి మార్గం ఉండదు. Floating latest tag ను Actual సులభంగా నిర్వహిస్తుంది. ఎందుకంటే దాని state అనేది files ఉన్న directory. నిజమైన database ను ఉపయోగించే app కు ఇది వర్తించదు. Chatwoot ను self-host చేయడం pinned tags మరియు upgrade కు ముందు తీసుకోవాల్సిన dump గురించి వివరిస్తుంది.
ఏమి విఫలమవుతుంది మరియు మీరు ఏమి చూస్తారు
అప్లికేషన్ లోడ్ అవుతుంది కానీ సింక్ (sync) పూర్తి కాదు. 413 కోసం nginx యాక్సెస్ లాగ్ను తనిఖీ చేయండి. ఇది client_max_body_size చాలా తక్కువగా సెట్ చేయబడిందని అర్థం. 502 కనిపిస్తే, nginx నడుస్తోందని కానీ కంటైనర్ నడవడం లేదని అర్థం.
ఎన్క్రిప్షన్ ఆప్షన్లు కనిపించడం లేదు, లేదా మొబైల్ యాప్ URLను తిరస్కరిస్తోంది. పేజీ సురక్షితమైన సందర్భంలో (secure context) లేదు. అడ్రస్ బార్లో IP అడ్రస్ లేదా localhost కాని హోస్ట్నేమ్తో http:// కనిపిస్తుంది. దీనిని దాటవేసే ప్రయత్నం చేయకుండా, సర్టిఫికేట్ను సరిచేయండి.
బడ్జెట్ ఫైల్ ఈ వెర్షన్కు అనుకూలంగా లేదనే సందేశం వస్తుంది. క్లయింట్ మరియు సర్వర్ వెర్షన్లు వేర్వేరుగా ఉన్నాయి. రెండింటినీ ఒకే వెర్షన్కు అప్డేట్ చేసి, రీలోడ్ చేయండి.
కంటైనర్ లూప్లో రీస్టార్ట్ అవుతోంది. docker compose logs actual చదవండి. /data పై పర్మిషన్ ఎర్రర్ ఉంటే, మౌంట్ చేసిన డైరెక్టరీకి కంటైనర్ యూజర్ ద్వారా రైట్ (write) చేసే అనుమతి లేదని అర్థం. అడ్రస్-ఇన్-యూజ్ (address-in-use) ఎర్రర్ వస్తే, లూప్బ్యాక్లో 5006 పోర్ట్ను వేరే ఏదో అప్లికేషన్ వాడుతోందని అర్థం.
మొదటిసారి లోడ్ అవ్వడం నెమ్మదిగా అనిపిస్తుంది. మీరు బడ్జెట్ ఫైల్ను ఓపెన్ చేసినప్పుడు అది మొత్తం బ్రౌజర్లోకి డౌన్లోడ్ అవుతుంది. ఇది ఒకే పెద్ద ట్రాన్స్ఫర్, ఆ తర్వాత అంతా లోకల్ రీడ్స్ జరుగుతాయి. ఇది సర్వర్ సైజింగ్ సమస్య కాదు, కాబట్టి RAM పెంచినా ఫలితం ఉండదు.
FAQ
Actual Budget పనిచేయడానికి HTTPS అవసరమా?
అవును, ఆచరణలో ఇది అవసరం. Actual యొక్క end-to-end encryption బ్రౌజర్ యొక్క Web Crypto APIని ఉపయోగిస్తుంది. బ్రౌజర్లు ఈ APIని కేవలం సురక్షితమైన సందర్భాల్లో (secure context) మాత్రమే అనుమతిస్తాయి, అంటే https:// లేదా http://localhost ఉండాలి. వేరొక మెషిన్ నుండి plain HTTP ద్వారా కనెక్ట్ అయినప్పుడు ఈ ఫీచర్లు పనిచేయవు. అంతేకాకుండా, అధికారిక మొబైల్ యాప్లు plain HTTP సర్వర్ URLలను అంగీకరించవు. మీరు నిజమైన hostname పై Let's Encrypt సర్టిఫికేట్ను ఉపయోగించండి, లేదా కేవలం డెస్క్టాప్ బ్రౌజర్ను మాత్రమే ఉపయోగిస్తుంటే ACTUAL_HTTPS_KEY మరియు ACTUAL_HTTPS_CERT తో self-signed సర్టిఫికేట్ను వాడండి.
Actual నా బ్యాంక్ లావాదేవీలను ఆటోమేటిక్గా ఇంపోర్ట్ చేయగలదా?
మీరు స్వయంగా సైన్ అప్ చేసుకునే థర్డ్-పార్టీ సర్వీసుల ద్వారా మాత్రమే ఇది సాధ్యం: ఉత్తర అమెరికాలో SimpleFIN Bridge, ఐరోపాలో Enable Banking, న్యూజిలాండ్లో Akahu, లేదా బ్రెజిల్లో Pluggy.ai. GoCardless కు మద్దతు ఉన్నప్పటికీ, అది కొత్త ఖాతాలను అంగీకరించడం లేదు. ఆ API క్రెడెన్షియల్స్ మీ సర్వర్లోనే ఉంటాయి మరియు అవి end-to-end encryption పరిధిలోకి రావు. సింక్ (sync) ప్రక్రియ మాన్యువల్గా జరుగుతుంది, కాబట్టి మీరు బటన్ నొక్కినప్పుడే డేటా వస్తుంది; బ్యాక్గ్రౌండ్లో ఏదీ ఆటోమేటిక్గా పోల్ (poll) అవ్వదు. CSV, QIF, OFX మరియు QFX ఫైళ్లను ఇంపోర్ట్ చేయడానికి ఎటువంటి థర్డ్-పార్టీ సర్వీస్ అవసరం లేదు.
నేను ఖచ్చితంగా దేనిని బ్యాకప్ తీసుకోవాలి?
ఈ గైడ్లో /opt/actual/data గా పేర్కొన్న మౌంట్ చేయబడిన డేటా డైరెక్టరీని బ్యాకప్ తీసుకోవాలి. ఇందులో లాగిన్లు మరియు సెషన్ల కోసం server-files/account.sqlite, మరియు బడ్జెట్ ఫైళ్ల కోసం user-files ఉంటాయి. కాపీ చేసే ముందు కంటైనర్ను ఆపివేయండి, ఎందుకంటే రన్ అవుతున్న SQLite డేటాబేస్ను కాపీ చేస్తే డేటా పాక్షికంగా మాత్రమే సేవ్ అయ్యే ప్రమాదం ఉంది. సర్వర్లో మరే ఇతర భాగం కూడా స్టేట్ (state) సమాచారాన్ని కలిగి ఉండదు.
నేను ఎన్క్రిప్షన్ పాస్వర్డ్ను మర్చిపోతే ఏమవుతుంది?
ఆ ఫైల్ను తిరిగి పొందడం అసాధ్యం. పాస్వర్డ్ సర్వర్కు ఎప్పటికీ చేరదు, అదే end-to-end encryption యొక్క ముఖ్య ఉద్దేశ్యం. కాబట్టి, పాస్వర్డ్ రీసెట్ చేయడానికి ఎటువంటి మార్గం లేదు మరియు దీనికి ఎటువంటి సపోర్ట్ ఉండదు. ఫైల్ను సృష్టించిన వెంటనే దానిని ఒక పాస్వర్డ్ మేనేజర్లో భద్రపరచండి మరియు ఈ సర్వర్పై ఆధారపడని వేరొక చోట దాని కాపీని ఉంచండి.
Actual Budget కోసం ఎంత సర్వర్ సామర్థ్యం అవసరం?
చాలా తక్కువ. ఈ కంటైనర్ కేవలం static assets మరియు ఫైళ్లను మాత్రమే అందిస్తుంది, బడ్జెట్ లెక్కలన్నీ బ్రౌజర్లోనే జరుగుతాయి. 1 GB RAM ఉన్న ఒక shared vCPU దీనికి సరిపోతుంది. అనేక సంవత్సరాల చరిత్ర కలిగిన గృహ బడ్జెట్ డేటా డైరెక్టరీ పరిమాణం కేవలం కొన్ని పదుల మెగాబైట్లు మాత్రమే ఉంటుంది. డిస్క్ పై ఒత్తిడి మీ బ్యాకప్లు మరియు ఇతర కంటైనర్ల వల్ల వస్తుంది తప్ప, Actual వల్ల కాదు. దీనితో పాటు ఎక్కువ వనరులు అవసరమయ్యే అప్లికేషన్లను రన్ చేయాలనుకుంటే, ఆ అప్లికేషన్ల అవసరాలను బట్టి సర్వర్ సైజును నిర్ణయించుకోండి. కాబట్టి, ప్లాన్ను ఎంచుకునే ముందు PhotoPrism మరియు Immich లకు ఎంత RAM అవసరమో ఒకసారి తనిఖీ చేయండి.