add settings table to database

This commit is contained in:
Peter Rounce 2023-01-27 08:45:57 +00:00
parent 177b085c3f
commit 085b402fef
4 changed files with 29 additions and 45 deletions

View file

@ -10,57 +10,13 @@ Restart=always
RestartSec=10
User=ubuntu
# boltcard service settings
# LOG_LEVEL is DEBUG or PRODUCTION
Environment="LOG_LEVEL=DEBUG"
# AES_DECRYPT_KEY is the hex value of the server decrypt key for hosted bolt cards
Environment="AES_DECRYPT_KEY=00000000000000000000000000000000"
# DB_ values are for the postgres database connection
# postgres database connection settings
Environment="DB_HOST=localhost"
Environment="DB_PORT=5432"
Environment="DB_USER=cardapp"
Environment="DB_PASSWORD=database_password"
Environment="DB_NAME=card_db"
# HOST_ values are for https calls
Environment="HOST_DOMAIN=card.yourdomain.com"
Environment="HOST_PORT=9000"
# MIN_WITHDRAW_SATS & MAX_WITHDRAW_SATS set the values for the lnurlw response
#
# as of Nov 2022 it is advisable to set MAX_WITHDRAW_SATS higher than the card tx limits
# the Point Of Sale use will work as expected
# the Gift Card use should try to withdraw MAX_WITHDRAW_SATS and fail on the card tx limit
Environment="MIN_WITHDRAW_SATS=1"
Environment="MAX_WITHDRAW_SATS=1000000"
# LN_ values are for the lightning server used for making payments
Environment="LN_HOST=ln.host.io"
Environment="LN_PORT=10009"
Environment="LN_TLS_FILE=/home/ubuntu/boltcard/tls.cert"
Environment="LN_MACAROON_FILE=/home/ubuntu/boltcard/SendPaymentV2.macaroon"
# The maximum lightning network fee to be paid is the base FEE_LIMIT_SAT + the FEE_LIMIT_PERCENT of the amount.
Environment="FEE_LIMIT_SAT=5"
Environment="FEE_LIMIT_PERCENT=0.5"
# email
# Environment="AWS_SES_ID="
# Environment="AWS_SES_SECRET="
# Environment="AWS_SES_EMAIL_FROM="
# Environment="EMAIL_MAX_TXS=10"
# LN_TESTNODE may be used in testing and will then only pay to the defined test node pubkey
#Environment="LN_TESTNODE=000000000000000000000000000000000000000000000000000000000000000000"
# set which functions are available on the server
Environment="FUNCTION_LNURLW=ENABLE"
#Environment="FUNCTION_LNURLP=ENABLE"
#Environment="FUNCTION_EMAIL=ENABLE"
ExecStart=/bin/bash /home/ubuntu/boltcard/s_launch
[Install]

View file

@ -6,6 +6,13 @@ CREATE USER cardapp WITH PASSWORD 'database_password';
\c card_db;
CREATE TABLE settings (
setting_id INT GENERATED ALWAYS AS IDENTITY,
name VARCHAR(30) UNIQUE NOT NULL DEFAULT '',
value VARCHAR(128) NOT NULL DEFAULT '',
PRIMARY KEY(setting_id)
);
CREATE TABLE cards (
card_id INT GENERATED ALWAYS AS IDENTITY,
k0_auth_key CHAR(32) NOT NULL,
@ -55,10 +62,12 @@ CREATE TABLE card_receipts (
amount_msats BIGINT CHECK (amount_msats > 0),
receipt_status VARCHAR(100) NOT NULL DEFAULT '',
receipt_status_time TIMESTAMPTZ,
PRIMARY KEY(card_receipt_id),
CONSTRAINT fk_card FOREIGN KEY(card_id) REFERENCES cards(card_id)
);
GRANT ALL PRIVILEGES ON TABLE settings TO cardapp;
GRANT ALL PRIVILEGES ON TABLE cards TO cardapp;
GRANT ALL PRIVILEGES ON TABLE card_payments TO cardapp;
GRANT ALL PRIVILEGES ON TABLE card_receipts TO cardapp;

18
insert_settings.sql Normal file
View file

@ -0,0 +1,18 @@
\c card_db;
INSERT INTO settings (name, value) VALUES ('LOG_LEVEL', '');
INSERT INTO settings (name, value) VALUES ('AES_DECRYPT_KEY', '');
INSERT INTO settings (name, value) VALUES ('HOST_DOMAIN', '');
INSERT INTO settings (name, value) VALUES ('MIN_WITHDRAW_SATS', '');
INSERT INTO settings (name, value) VALUES ('MAX_WITHDRAW_SATS', '');
INSERT INTO settings (name, value) VALUES ('LN_HOST', '');
INSERT INTO settings (name, value) VALUES ('LN_PORT', '');
INSERT INTO settings (name, value) VALUES ('LN_TLS_FILE', '');
INSERT INTO settings (name, value) VALUES ('LN_MACAROON_FILE', '');
INSERT INTO settings (name, value) VALUES ('FEE_LIMIT_SAT', '');
INSERT INTO settings (name, value) VALUES ('FEE_LIMIT_PERCENT', '');
INSERT INTO settings (name, value) VALUES ('LN_TESTNODE', '');
INSERT INTO settings (name, value) VALUES ('FUNCTION_LNURLW', '');
INSERT INTO settings (name, value) VALUES ('FUNCTION_LNURLP', '');
INSERT INTO settings (name, value) VALUES ('FUNCTION_EMAIL', '');

View file

@ -13,6 +13,7 @@ read x
if [ "$x" = "y" ]; then
psql postgres -f create_db.sql
psql postgres -f insert_settings.sql
echo Database created
else
echo No action