diff --git a/boltcard.service b/boltcard.service index be2c9fb..01d8d37 100644 --- a/boltcard.service +++ b/boltcard.service @@ -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] diff --git a/create_db.sql b/create_db.sql index d2192c9..7bc9842 100644 --- a/create_db.sql +++ b/create_db.sql @@ -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; diff --git a/insert_settings.sql b/insert_settings.sql new file mode 100644 index 0000000..30fce96 --- /dev/null +++ b/insert_settings.sql @@ -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', ''); + diff --git a/s_create_db b/s_create_db index 649e4d5..72c3dc1 100755 --- a/s_create_db +++ b/s_create_db @@ -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