VPSలో Listmonk న్యూస్లెటర్ను స్వయంగా హోస్ట్ చేయడం
Ubuntu 24.04లో Listmonk v6.2.0ను PostgreSQL, config.toml, systemd unit, TLSతో ఇన్స్టాల్ చేసి SMTP కనెక్ట్ చేయండి. డెలివరీ ప్రతిష్ఠకు వారాలు పడుతుంది.
Listmonkలో స్వయంగా హోస్ట్ చేసే న్యూస్లెటర్కు అవసరమైనవి
Listmonk స్వయంగా హోస్ట్ చేసుకునే న్యూస్లెటర్ మరియు మెయిలింగ్ లిస్ట్ నిర్వహణ సాధనం. ఇందులో ఒక Go బైనరీ, ఒక PostgreSQL డేటాబేస్, ఒక కాన్ఫిగరేషన్ ఫైల్, ఒక systemd యూనిట్ ఉంటాయి. చిన్న VPSలో దీన్ని సులభంగా నడపవచ్చు. ఎందుకంటే Listmonk సబ్స్క్రైబర్ల వివరాలను మరియు క్యాంపెయిన్లను క్యూలో నిల్వ చేస్తుంది, కానీ స్వయంగా మెయిల్ పంపదు. ప్రతి సందేశాన్ని SMTP (సింపుల్ మెయిల్ ట్రాన్స్ఫర్ ప్రోటోకాల్) సర్వర్కు అప్పగిస్తుంది. అందువల్ల మీ మెయిల్ డెలివరీ రేటును ఈ సాఫ్ట్వేర్ కాకుండా, ఆ సర్వర్ ప్రతిష్ఠ నిర్ణయిస్తుంది.
ఈ గైడ్ Ubuntu 24.04లో Listmonk v6.2.0ను ఇన్స్టాల్ చేస్తుంది. ఇది July 2026 నాటికి అందుబాటులో ఉన్న ప్రస్తుత release. మీకు public IP address కలిగిన VPS, మీరు నియంత్రించే domain name, మరియు PostgreSQL 12 లేదా ఆ తర్వాతి version అవసరం. ఇన్స్టాలేషన్కు సుమారు ఒక గంట పడుతుంది. మెయిల్ పంపే ప్రతిష్ఠ ఏర్పడటానికి కొన్ని వారాలు పడుతుంది. ఆ అంశాన్ని చివర్లో వివరిస్తాం.
PostgreSQL ఇన్స్టాల్ చేసి డేటాబేస్ను సృష్టించండి
Ubuntu 24.04 తన సొంత రిపాజిటరీలో PostgreSQL 16ను అందిస్తుంది. ఇది Listmonkకు అవసరమైన సంస్కరణ కంటే చాలా కొత్తది.
sudo apt update
sudo apt install -y postgresql curl
sudo systemctl enable --now postgresqlఒకే psql సెషన్లో role మరియు databaseను సృష్టించండి. -v ON_ERROR_STOP=1 మొదటి విఫలమైన statement వద్ద psqlను నిష్క్రమింపజేస్తుంది. అందువల్ల టైపింగ్ పొరపాటు జరిగినప్పుడు సగం పూర్తయిన setup పూర్తయినట్లు కనిపించదు.
sudo -u postgres psql -v ON_ERROR_STOP=1 <<'SQL'
CREATE USER listmonk WITH PASSWORD 'pick-a-long-random-password';
CREATE DATABASE listmonk OWNER listmonk;
SQLOWNER listmonk అలంకార సమాచారం కాదు. Schema install సమయంలో tables, types, indexes మరియు functions సృష్టించబడతాయి. అందువల్ల roleకి databaseపై ownership ఉండాలి. మరో roleకి చెందిన databaseను Listmonkకు కేటాయిస్తే, మీరు GRANT CONNECT అమలు చేసిన తర్వాత కూడా install permission deniedతో ఆగిపోతుంది.
కొనసాగించే ముందు database ఉందో నిర్ధారించండి.
sudo -u postgres psql -tAc "SELECT datname FROM pg_database WHERE datname='listmonk';"ఇది listmonkను ప్రింట్ చేస్తుంది. ఖాళీ లైన్ కనిపిస్తే CREATE statement అమలు కాలేదని అర్థం. కాబట్టి psql outputను మళ్లీ చదవండి.
Listmonk బైనరీని ఇన్స్టాల్ చేయండి
Listmonk ప్రతి ఆర్కిటెక్చర్ కోసం static binaryని విడుదల చేస్తుంది. ముందుగా మీ ఆర్కిటెక్చర్ను తనిఖీ చేయండి. ARM VPSలో amd64 binaryని ఉపయోగిస్తే, దాన్ని kernel అమలు చేయదు.
dpkg --print-architecture
cd /tmp
curl -fsSLO https://github.com/knadh/listmonk/releases/download/v6.2.0/listmonk_6.2.0_linux_amd64.tar.gz
tar -xzf listmonk_6.2.0_linux_amd64.tar.gz
sudo install -m 755 listmonk /usr/bin/listmonk
listmonk --versionARM VPSలో ఫైల్ పేరులోని amd64 స్థానంలో arm64 ఉపయోగించండి. listmonk --version version stringను ప్రదర్శిస్తే, binary ఈ machineకు సరిపోతుందనే మీ మొదటి నిర్ధారణ లభిస్తుంది.
config.toml ను రూపొందించి, దానికి కఠిన అనుమతులు అమలు చేయండి
--new-config ప్రస్తుత working directoryలో config.toml ను రాస్తుంది. అందుకే cd sh -c లో ఉంటుంది; sudo కు ముందు ఉండదు.
sudo install -d -m 750 /etc/listmonk
sudo sh -c 'cd /etc/listmonk && listmonk --new-config'రూపొందించిన file చిన్నదిగా ఉంటుంది. [app] కింద, address = "localhost:9000" HTTP serverను loopbackకు మాత్రమే bind చేస్తుంది. అందువల్ల reverse proxyని ముందు ఉంచే వరకు admin panel internet నుంచి అందుబాటులో ఉండదు. ఆ lineను మార్చవద్దు. [db] కింద మీకు host = "localhost", port = 5432, user = "listmonk", database = "listmonk" మరియు ssl_mode = "disable" లభిస్తాయి. మీరు సృష్టించిన databaseతో ఆ defaults ఇప్పటికే సరిపోతాయి. కాబట్టి మీరు మార్చాల్సినది password line మాత్రమే.
Postgres అదే boxలో loopbackపై listen చేస్తున్నప్పుడు ssl_mode = "disable" సరైనదే. ఆ traffic machineను విడిచి వెళ్లదు. Databaseను మరో hostకు తరలిస్తే, దాన్ని require గా సెట్ చేయండి. లేకపోతే password networkపై cleartextగా వెళ్తుంది.
[db] కింద ఉన్న password lineను roleకు సరిపడేలా మార్చండి. తర్వాత service accountను సృష్టించి, ఇతర loginలన్నింటి నుంచి ఆ fileకు ప్రాప్యతను తొలగించండి.
sudo useradd --system --home-dir /var/lib/listmonk --create-home --shell /usr/sbin/nologin listmonk
sudo chown -R root:listmonk /etc/listmonk
sudo chmod 640 /etc/listmonk/config.tomlఇప్పుడు service account fileను చదవగలదు. మరెవరూ చదవలేరు.
sudo -u listmonk cat /etc/listmonk/config.toml > /dev/null && echo readable
stat -c '%U:%G %a' /etc/listmonk/config.tomlమొదటి command readable ను print చేస్తుంది. రెండవది root:listmonk 640 ను print చేస్తుంది. మరే ఇతర unprivileged account అదే cat ను ప్రయత్నిస్తే Permission denied లభిస్తుంది. ఇదే ఉద్దేశ్యం: ఈ fileలో మీ database password cleartextగా ఉంటుంది. సాధారణంగా ఒక serverలో ఒకటి కంటే ఎక్కువ loginలు ఉంటాయి. మీరు run చేసే ప్రతి serviceకు ఇదే కారణం వర్తిస్తుంది. అందువల్ల తక్కువ ప్రత్యేక హక్కులతో service users గురించి ఒకసారి చదివి, ప్రతిచోటా ఆ విధానాన్ని అమలు చేయండి.
--install తో schemaని సృష్టించండి
--install tablesని సృష్టించి, default settingsని seed చేస్తుంది. Environment variablesతో మొదటి admin loginని సెట్ చేయండి. అందువల్ల panel ఎప్పుడైనా అందుబాటులోకి రాకముందే account ఉంటుంది.
sudo -u listmonk env LISTMONK_ADMIN_USER=admin \
LISTMONK_ADMIN_PASSWORD='another-long-random-password' \
listmonk --config /etc/listmonk/config.toml --install --yes--yes confirmation promptకి సమాధానం ఇస్తుంది. దాన్ని automate చేయడానికి ముందు ఆ promptని ఒకసారి చదవండి. ఎందుకంటే --install మొదటి installer run, అలాగే ఇది ఇప్పటికే ఉన్న Listmonk schemaని తొలగిస్తుంది. Live databaseపై దీన్ని రెండోసారి అమలు చేస్తే subscribers నశిస్తారు. రెండుసార్లు అమలయ్యే అవకాశం ఉన్న ఏ scriptలోనైనా --install --idempotent --yesని ఉపయోగించండి. Tables ఇప్పటికే ఉంటే అది ఏ మార్పూ చేయదు. కొత్త releaseలో ship అయ్యే schema మార్పులను --upgradeతో apply చేయాలి; --installతో ఎప్పుడూ చేయకండి.
Browser నుంచి కాకుండా database వైపు నుంచి ఫలితాన్ని తనిఖీ చేయండి.
sudo -u postgres psql -d listmonk -c '\dt'
sudo -u postgres psql -d listmonk -tAc "SELECT username FROM users;"మొదటి command Listmonk tablesని చూపిస్తుంది. వాటిలో subscribers, lists, campaigns, templates మరియు bounces ఉంటాయి. రెండోది adminని print చేస్తుంది. రెండో command నుంచి ఖాళీ result వస్తే environment variables processకి చేరలేదు. అందువల్ల panel బదులుగా browserలో మొదటి userని సృష్టించమని అడుగుతుంది.
systemd కింద Listmonkను అమలు చేయండి
/etc/systemd/system/listmonk.service రాయండి.
[Unit]
Description=Listmonk newsletter and mailing list manager
After=network-online.target postgresql.service
Wants=network-online.target
[Service]
Type=simple
User=listmonk
Group=listmonk
WorkingDirectory=/var/lib/listmonk
ExecStart=/usr/bin/listmonk --config /etc/listmonk/config.toml
Restart=on-failure
RestartSec=5
NoNewPrivileges=true
PrivateTmp=true
ProtectSystem=full
ProtectHome=true
[Install]
WantedBy=multi-user.targetWorkingDirectory ముఖ్యమైనది, ఎందుకంటే Listmonk ఫైల్సిస్టమ్ మీడియా అప్లోడ్ మార్గంతో సహా సంబంధిత మార్గాలను దాని ఆధారంగా పరిష్కరిస్తుంది. After=postgresql.service ప్రారంభాన్ని మాత్రమే ఆదేశిస్తుంది. Postgres కనెక్షన్లను అంగీకరించే వరకు అది వేచి ఉండదు. అందువల్ల Listmonk కొద్దిగా ముందుగానే ప్రారంభమై కనెక్ట్ కాలేని సందర్భాన్ని Restart=on-failure నిర్వహిస్తుంది.
sudo systemctl daemon-reload
sudo systemctl enable --now listmonk
ss -ltnp | grep 9000
curl -sI http://127.0.0.1:9000/LISTEN స్థితిలో 127.0.0.1:9000 కనిపించేలా ss చూపించాలి. ఏదైనా HTTP status lineను తిరిగి ఇవ్వడం ద్వారా సర్వర్ సమాధానం ఇస్తోందని curl తెలియజేస్తుంది. Connection refusedతో curl విఫలమైతే, ప్రారంభ సమయంలో process ఆగిపోయిందని అర్థం. కారణాన్ని journalctl -u listmonk -n 50 --no-pager తెలియజేస్తుంది. enable --now మాత్రమే reboot తర్వాత కూడా కొనసాగుతుంది. చేతితో ప్రారంభించిన process తదుపరి kernel upgrade తర్వాత ఉండదు.
nginx మరియు TLS ను ముందు ఉంచండి
Listmonk loopback పై సాధారణ HTTP ను అందిస్తుంది. అందువల్ల nginx TLS (transport layer security) ను ముగించి, అభ్యర్థనను ముందుకు పంపుతుంది.
server {
listen 443 ssl;
server_name lists.example.com;
client_max_body_size 25m;
location / {
proxy_pass http://127.0.0.1:9000;
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;
}
}చందాదారుల దిగుమతులు మరియు మీడియా uploads ఫైల్ POST అభ్యర్థనలు కాబట్టి, client_max_body_size విలువను పెంచాలి. nginx డిఫాల్ట్గా 1 MB కంటే పెద్ద ఫైళ్లను 413 Request Entity Too Large తో తిరస్కరిస్తుంది. certbot తో certificate ను జారీ చేయండి. ఇది మీ కోసం listen 443 ssl పంక్తులను మరియు port 80 నుండి redirect ను కూడా రాస్తుంది. దశలు nginx కోసం Let's Encrypt certificate guide లో ఉన్నాయి. Ports 80 మరియు 443 ను తెరవండి. 9000 ను మూసి ఉంచండి, ఎందుకంటే proxy దాన్ని loopback ద్వారా చేరుకుంటుంది. Firewall ఇంకా కాన్ఫిగర్ చేయకపోతే, ufw firewall ప్రాథమికాలు తో ప్రారంభించండి.
తర్వాత admin panel ను తెరిచి, Settings లో root URL ను https://lists.example.com గా సెట్ చేయండి. కొత్త install లో http://localhost:9000 ఉంటుంది. Listmonk email లో చేర్చే ప్రతి unsubscribe link మరియు media URL లో ఆ విలువను రాస్తుంది. దాన్ని మార్చకముందే campaign పంపితే, ప్రతి recipient కు వారి స్వంత machine కు దారితీసే links అందుతాయి. అవి reader కు పనిచేయవు. Spam filter కు, sender తన domain ను కాన్ఫిగర్ చేయలేడనే అనుమానం కలుగుతుంది.
config.tomlలో లేని SMTPని కనెక్ట్ చేయడం
config.tomlలో SMTP విభాగం కోసం వెతికినా అది కనిపించదు. మెయిల్ సెట్టింగ్లు databaseలోని settings tableలో ఉంటాయి. వాటిని admin panelలో Settings మరియు SMTP కింద సవరించాలి. అందుకే రూపొందించిన file చాలా చిన్నగా ఉంటుంది. SMTPలో మార్పు చేసినప్పుడు restart అవసరం లేకపోవడానికి కూడా ఇదే కారణం.
SMTP server కోసం రెండు సరైన ఎంపికలు ఉన్నాయి. మీ స్వంత serverను నడపవచ్చు. అప్పుడు reputation పూర్తిగా మీ నియంత్రణలో ఉంటుంది. అయితే ఇది స్వతంత్రంగా ఒక పూర్తి project. ఇందులో ఉండే అంశాలను Mailcowతో మీ స్వంత mail serverను నడపడం వివరిస్తుంది. లేదా Listmonkను transactional relayకు అనుసంధానించి, IP reputation బాధ్యతను మరొక సంస్థకు అప్పగించవచ్చు.
ఏ ఎంపికను తీసుకున్నా, STARTTLSతో port 587ను లేదా implicit TLSతో port 465ను ఉపయోగించండి. outbound port 25పై ఆధారపడేలా ప్రణాళిక చేయవద్దు. చాలా VPS providers కొత్త accountsలో దీన్ని defaultగా block చేస్తాయి. port 25 block అయితే కనెక్షన్ నిలిచిపోయినట్లు కనిపిస్తుంది. packetsను తిరస్కరించకుండా drop చేస్తారు. అందువల్ల client వెంటనే విఫలం కాకుండా timeout కోసం వేచి ఉంటుంది.
దానిపై ఆధారపడే ముందు పరీక్షించండి. ఒక listను సృష్టించి, మీ స్వంత addressను subscriberగా జోడించండి. ఒక recipient ఉన్న campaignను పంపండి. అందిన messageను తెరిచి, పూర్తి headersను చదవండి. receiving side జోడించిన Authentication-Results header ద్వారా SPF మరియు DKIM pass అయ్యాయో తెలుసుకోవచ్చు.
డెలివరీనే మొత్తం పని
Listmonk సందేశాన్ని రూపొందిస్తుంది, జాబితాను నిర్వహిస్తుంది, తర్వాత మెయిల్ను అప్పగిస్తుంది. ఆ మెయిల్ inboxకు చేరుతుందా లేదా అనే ప్రతి నిర్ణయాన్ని స్వీకరించే provider తీసుకుంటుంది. ఇందుకు sending IP address మరియు sending domainను ఉపయోగిస్తుంది. కొత్త VPS IPకి ఎలాంటి చరిత్ర ఉండదు. పెద్ద mailbox providerలు చరిత్ర లేని IPలను స్వల్పంగా అనుమానాస్పదంగా పరిగణిస్తాయి.
ఈ నాలుగు అంశాలు తప్పనిసరి:
- మీ domain తరఫున పంపడానికి అనుమతించబడిన hostను పేర్కొనే SPF (sender policy framework) TXT record.
- TXT recordగా ప్రచురించిన DKIM (domainkeys identified mail) key. దీని signingను Listmonk కాకుండా mail server చేయాలి.
- DMARC (domain based message authentication, reporting and conformance) record. మొదటి రెండు విఫలమైనప్పుడు receivers ఏమి చేయాలో ఇది నిర్దేశిస్తుంది.
- Listmonk చదివే bounce mailbox. దీంతో మెయిల్ను తిరస్కరించిన addresses మళ్లీ మళ్లీ retry కాకుండా జాబితా నుంచి తొలగించబడతాయి.
ఆ తర్వాత మొదట్లో నెమ్మదిగా పంపండి. ఇంతకు ముందు ఎప్పుడూ మెయిల్ పంపని domain ఒక్కసారిగా ఒక గంటలో పది వేల messages పంపితే, అది compromised accountకు కనిపించే విధంగానే ఉంటుంది. అందువల్ల దానిని అలాగే filter చేస్తారు. మీతో ఎక్కువగా engage అయ్యే subscribersతో ప్రారంభించండి. కొన్ని రోజుల వ్యవధిలో volumeను పెంచండి.
ప్రతి templateలో పనిచేసే unsubscribe link కూడా ఉండాలి. Listmonk templateలో అది {{ UnsubscribeURL }}. Campaign body {{ template "content" . }} ఉన్న స్థానంలోకి వస్తుంది. ప్రతి templateలో {{ template "content" . }} ఖచ్చితంగా ఒక్కసారి కనిపించాలి. Unsubscribe link లేని campaignకు unsubscribes బదులుగా spam complaints వస్తాయి. వారాలుగా నిర్మించిన sending reputationను కోల్పోవడానికి complaints అత్యంత వేగవంతమైన మార్గం.
బ్యాకప్లు, అలాగే పునరుద్ధరణకు వాస్తవంగా అవసరమైనవి
రెండు అంశాలు సర్వర్ నుంచి బయటకు వెళ్లాలి: డేటాబేస్ dump మరియు config.toml. మీరు campaignsలో చిత్రాలను upload చేస్తే media directoryని కూడా చేర్చండి.
sudo -u postgres pg_dump -Fc listmonk > listmonk-$(date +%F).dumpఆ dumpలో subscribers, campaigns, templates మరియు SMTP credentialsతో సహా ప్రతి setting ఉంటుంది. అందువల్ల దాన్ని encrypt చేసి, ఈ server వెలుపల ఉంచండి. దీని scheduling సమస్య ఇప్పటికే పరిష్కరించబడింది: దూర నిల్వకు encrypted restic backups చూడండి. config.toml కొన్ని పంక్తులే ఉన్నా, అందులో database password ఉంటుంది. కాబట్టి దానిని కూడా అదే విధంగా నిర్వహించండి.
Upgrades ఒకే క్రమంలో జరగాలి. serviceను stop చేయండి, dump తీసుకోండి, /usr/binలోని binaryని replace చేయండి, listmonk --config /etc/listmonk/config.toml --upgradeను run చేయండి, తరువాత serviceను start చేయండి. Schema migrations ముందుకు మాత్రమే అమలవుతాయి. అందువల్ల తిరిగి వెనక్కి వెళ్లడానికి ఆ dump మాత్రమే మీ మార్గం.
Listmonk ఎందుకు ప్రారంభం కావడం విఫలమవుతుంది?
ముందుగా journalctl -u listmonk -n 50 --no-pager తో journal ను చదవండి. దాదాపు ప్రతి startup వైఫల్యం [db] block లోని ఒకే పంక్తిలో ఉంటుంది.
pq: password authentication failed for user "listmonk" అంటే [db] లోని password Postgres role కు సరిపోలడం లేదని అర్థం. pq prefix అనేది server తిరస్కరణను Postgres driver నివేదిస్తున్నదని సూచిస్తుంది. అందువల్ల config సరిగ్గా చదవబడింది, కానీ credentials తప్పుగా ఉన్నాయి. sudo -u postgres psql -c "ALTER USER listmonk WITH PASSWORD 'new-password';" తో role ను reset చేసి, అదే string ను file లో ఉంచండి.
pq: database "listmonk" does not exist అంటే [db] లోని database విలువ నిజమైన database ను సూచించడం లేదని అర్థం. server పై వాస్తవంగా ఉన్న database లను, మీరు పొరపాటుగా ఉపయోగించిన spelling తో సహా, sudo -u postgres psql -l చూపిస్తుంది.
--install సమయంలో permission denied కనిపిస్తే, role కు connect కావడం సాధ్యమే కానీ database దాని సొంతం కాదు. అందువల్ల అందులో tables సృష్టించలేరు. sudo -u postgres psql -c "ALTER DATABASE listmonk OWNER TO listmonk;" తో దాన్ని సరిచేసి, install ను మళ్లీ అమలు చేయండి.
service ఎప్పుడూ ప్రారంభం కాదు, journal config file పేరును చూపిస్తుంది. listmonk గా నడుస్తున్న process, mode 600 తో root:root గా ఉంచిన config.toml ను open చేయలేరు. stat -c '%U:%G %a' /etc/listmonk/config.toml తప్పనిసరిగా root:listmonk 640 ను చూపించాలి. దాని పై directory root:listmonk 750 గా ఉండాలి.
panel పనిచేస్తోంది కానీ mail ఏదీ అందడం లేదు. ఇది startup సమస్య కాదు. ముందుగా Settings మరియు SMTP ను తనిఖీ చేయండి. తర్వాత admin panel లోని campaign స్వంత log ను పరిశీలించండి. ప్రతి ప్రయత్నానికి mail server తిరిగి పంపిన error ను అది నమోదు చేస్తుంది.
FAQ
Listmonk ఉపయోగించడానికి నాకు నా స్వంత mail server అవసరమా?
లేదు. Listmonk mail server కాదు. మీ mailను స్వీకరించి, పంపిణీ చేసే serverకు సంబంధించిన SMTP credentials అవసరం. అది transactional relay కావచ్చు లేదా మీరు స్వయంగా నిర్వహించే mail server కావచ్చు. Admin panelలో Settings మరియు SMTP కింద ఆ credentialsను సెట్ చేయండి. వాటిని config.tomlలో సెట్ చేయవద్దు, ఎందుకంటే mail settings databaseలో ఉంటాయి. STARTTLSతో port 587 లేదా implicit TLSతో port 465 ఉపయోగించండి. చాలా VPS providers కొత్త accountsలో outbound port 25ను block చేస్తాయి.
నా campaignలోని links localhost:9000కి ఎందుకు చూపుతున్నాయి?
Root URL setting ఇప్పటికీ install default అయిన http://localhost:9000గా ఉంది. Campaign పంపే సమయంలో Listmonk ఆ విలువను unsubscribe links మరియు media URLsలో రాస్తుంది. Admin panelలో Settings తెరిచి, root URLను మీ నిజమైన HTTPS addressగా సెట్ చేసి save చేయండి. ఇప్పటికే పంపిణీ చేసిన messagesను సరిచేయలేరు. అందువల్ల నిజమైన listకు mail పంపే ముందు మీకు మీరే test campaign పంపి, అందులోని unsubscribe linkను click చేయండి.
--installను మళ్లీ run చేస్తే నా subscribers తొలగిపోతారా?
అవును. --install మొదటిసారి ఉపయోగించే installer. ఇది ఇప్పటికే ఉన్న Listmonk schemaను తొలగిస్తుంది. --yes మిమ్మల్ని హెచ్చరించే promptను కూడా తొలగిస్తుంది. రెండుసార్లు run అయ్యే అవకాశం ఉన్న ఏ scriptలోనైనా --install --idempotent --yes ఉపయోగించండి. Tables ఇప్పటికే ఉంటే అది ఏ మార్పూ చేయదు. కొత్త releaseలో schema మార్పులను వర్తింపజేయడానికి serviceను stop చేసి, pg_dump తీసుకోండి. తర్వాత --upgrade run చేయండి.
Listmonk user listmonk కోసం password authentication failed అని ఎందుకు చెబుతోంది?
/etc/listmonk/config.tomlలోని [db] blockలో ఉన్న password, అదే పేరుగల Postgres roleకు సెట్ చేసిన passwordతో సరిపోలడం లేదు. Journal line pq: password authentication failed for user "listmonk". pq అనేది server తిరస్కరణను Postgres driver ముందుకు పంపుతోందని సూచిస్తుంది. అంటే config file కనుగొనబడి చదవబడింది. sudo -u postgres psql -c "ALTER USER listmonk WITH PASSWORD 'new-password';"తో role passwordను reset చేయండి. అదే stringను config fileలో రాయండి. తర్వాత sudo systemctl restart listmonk run చేయండి.