feat: Add new Portainer stacks, setup scripts, and configurations for various services including filebrowser, paperless, and firefly.
This commit is contained in:
57
firefly/Categories.txt
Normal file
57
firefly/Categories.txt
Normal file
@@ -0,0 +1,57 @@
|
||||
🟦 1. Housing
|
||||
- Mortgage / Rent
|
||||
- Property Tax
|
||||
- Home Insurance
|
||||
- Utilities (Hydro, Gas, Water)
|
||||
- Internet
|
||||
- Home Maintenance
|
||||
- Furniture & Appliances
|
||||
|
||||
2. Transportation
|
||||
- Fuel
|
||||
- Public Transit
|
||||
- Parking
|
||||
- Car Insurance
|
||||
- Car Maintenance
|
||||
- Car Loan / Lease
|
||||
- Ride‑sharing (Uber, Lyft)
|
||||
🟦 3. Food & Dining
|
||||
- Groceries
|
||||
- Restaurants
|
||||
- Coffee Shops
|
||||
- Takeout / Delivery
|
||||
🟦 4. Health & Wellness
|
||||
- Health Insurance
|
||||
- Dental
|
||||
- Prescriptions
|
||||
- Medical Services
|
||||
- Gym / Fitness
|
||||
- Therapy / Wellness
|
||||
🟦 5. Personal & Family
|
||||
- Clothing
|
||||
- Personal Care (haircuts, cosmetics)
|
||||
- Childcare
|
||||
- School / Education
|
||||
- Gifts
|
||||
- Pets
|
||||
🟦 6. Entertainment & Leisure
|
||||
- Streaming Services
|
||||
- Hobbies
|
||||
- Books & Media
|
||||
- Events / Tickets
|
||||
- Travel
|
||||
🟦 7. Financial
|
||||
- Bank Fees
|
||||
- Credit Card Interest
|
||||
- Investment Contributions
|
||||
- RRSP / TFSA / RESP
|
||||
- Accountant / Legal Fees
|
||||
🟦 8. Business / Work (optional)
|
||||
- Software Subscriptions
|
||||
- Office Supplies
|
||||
- Professional Development
|
||||
🟦 9. Miscellaneous
|
||||
- Uncategorized
|
||||
- One‑off purchases
|
||||
|
||||
|
||||
9
firefly/create_fireflyiii_folders.sh
Normal file
9
firefly/create_fireflyiii_folders.sh
Normal file
@@ -0,0 +1,9 @@
|
||||
# Define base path
|
||||
BASE="/volume1/docker/fireflyiii"
|
||||
|
||||
# Create folders
|
||||
mkdir -p "${BASE}/upload" "${BASE}/db"
|
||||
|
||||
# Set ownership and permissions
|
||||
chown -R 1040:65538 "${BASE}"
|
||||
chmod -R 750 "${BASE}"
|
||||
45
firefly/dbcommand
Normal file
45
firefly/dbcommand
Normal file
@@ -0,0 +1,45 @@
|
||||
|
||||
1uQ$g72*$9Gw4yFs
|
||||
|
||||
|
||||
$2y$10$2OcSKhMVh6fXLVcxJ6gPx.jtJisfX/j5WM5DE8dAhIibH6hZp/2ze
|
||||
|
||||
|
||||
|
||||
|
||||
INSERT INTO users (email, password, created_at, updated_at)
|
||||
VALUES ('jeffcheng@live.ca', '$2y$10$2OcSKhMVh6fXLVcxJ6gPx.jtJisfX/j5WM5DE8dAhIibH6hZp/2ze', NOW(), NOW()
|
||||
|
||||
|
||||
|
||||
INSERT INTO user_groups (title, created_at, updated_at)
|
||||
VALUES ('User group for jeffcheng@live.ca', NOW(), NOW());
|
||||
|
||||
|
||||
|
||||
SELECT id, title FROM user_groups ORDER BY id DESC LIMIT 1;
|
||||
|
||||
|
||||
|
||||
INSERT INTO user_group_membership (user_id, user_group_id, created_at, updated_at)
|
||||
VALUES (2, 2, NOW(), NOW());
|
||||
|
||||
|
||||
|
||||
DROP DATABASE firefly;
|
||||
CREATE DATABASE firefly CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
|
||||
|
||||
MULTIUSER=true
|
||||
|
||||
apt UPDATE
|
||||
|
||||
apt install mysql-client
|
||||
|
||||
|
||||
mysql -u firefly -p
|
||||
|
||||
|
||||
|
||||
github token: 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
|
||||
79
firefly/docker-compose.portainer.yml
Normal file
79
firefly/docker-compose.portainer.yml
Normal file
@@ -0,0 +1,79 @@
|
||||
#
|
||||
# The Firefly III Data Importer will ask you for the Firefly III URL and a "Client ID".
|
||||
# You can generate the Client ID at http://localhost/profile (after registering)
|
||||
# The Firefly III URL is: http://app:8080
|
||||
#
|
||||
# Other URL's will give 500 | Server Error
|
||||
#
|
||||
|
||||
services:
|
||||
app:
|
||||
image: fireflyiii/core:latest
|
||||
hostname: app
|
||||
container_name: firefly_iii_core
|
||||
networks:
|
||||
- firefly_iii
|
||||
restart: always
|
||||
volumes:
|
||||
- /volume1/docker/fireflyiii/upload:/var/www/html/storage/upload
|
||||
env_file: stack.env
|
||||
ports:
|
||||
- '8080:8080'
|
||||
depends_on:
|
||||
- db
|
||||
db:
|
||||
image: mariadb:lts
|
||||
hostname: db
|
||||
container_name: firefly_iii_db
|
||||
networks:
|
||||
- firefly_iii
|
||||
restart: always
|
||||
env_file: stack.env
|
||||
volumes:
|
||||
- /volume1/docker/fireflyiii/db:/var/lib/mysql
|
||||
healthcheck:
|
||||
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
|
||||
interval: 5s
|
||||
timeout: 3s
|
||||
retries: 10
|
||||
|
||||
importer:
|
||||
image: fireflyiii/data-importer:latest
|
||||
hostname: importer
|
||||
restart: always
|
||||
container_name: firefly_iii_importer
|
||||
networks:
|
||||
- firefly_iii
|
||||
ports:
|
||||
- '8081:8080'
|
||||
depends_on:
|
||||
- app
|
||||
env_file: stack.env
|
||||
|
||||
cron:
|
||||
#
|
||||
# To make this work, set STATIC_CRON_TOKEN in your .env file or as an environment variable
|
||||
# The STATIC_CRON_TOKEN must be *exactly* 32 characters long
|
||||
# Use this URL for inspiration: https://www.random.org/strings/?num=1&len=32&digits=on&upperalpha=on&loweralpha=on&unique=on&format=html&rnd=new
|
||||
#
|
||||
image: alpine
|
||||
container_name: firefly_iii_cron
|
||||
restart: always
|
||||
env_file: stack.env
|
||||
command: sh -c "
|
||||
apk add tzdata && \
|
||||
(ln -fs /usr/share/zoneinfo/$$TZ /etc/localtime || true) && \
|
||||
echo \"0 3 * * * wget -qO- http://app:8080/api/v1/cron/$$STATIC_CRON_TOKEN;echo\"
|
||||
| crontab - && \
|
||||
crond -f -L /dev/stdout"
|
||||
networks:
|
||||
- firefly_iii
|
||||
depends_on:
|
||||
- app
|
||||
volumes:
|
||||
firefly_iii_upload:
|
||||
firefly_iii_db:
|
||||
|
||||
networks:
|
||||
firefly_iii:
|
||||
driver: bridge
|
||||
80
firefly/import_settings/americanexpress.json
Normal file
80
firefly/import_settings/americanexpress.json
Normal file
@@ -0,0 +1,80 @@
|
||||
{
|
||||
"version": 3,
|
||||
"source": "ff3-importer-1.9.1",
|
||||
"created_at": "2025-12-28T12:02:55-05:00",
|
||||
"date": "d M Y",
|
||||
"default_account": 9,
|
||||
"delimiter": "comma",
|
||||
"headers": true,
|
||||
"rules": true,
|
||||
"skip_form": false,
|
||||
"add_import_tag": true,
|
||||
"roles": [
|
||||
"date_transaction",
|
||||
"date_process",
|
||||
"description",
|
||||
"note",
|
||||
"_ignore",
|
||||
"amount_debit",
|
||||
"amount_foreign",
|
||||
"_ignore",
|
||||
"_ignore",
|
||||
"_ignore",
|
||||
"_ignore",
|
||||
"_ignore",
|
||||
"_ignore",
|
||||
"_ignore",
|
||||
"_ignore",
|
||||
"_ignore"
|
||||
],
|
||||
"do_mapping": [
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false
|
||||
],
|
||||
"mapping": {},
|
||||
"duplicate_detection_method": "classic",
|
||||
"ignore_duplicate_lines": false,
|
||||
"unique_column_index": 0,
|
||||
"unique_column_type": "internal_reference",
|
||||
"flow": "file",
|
||||
"content_type": "csv",
|
||||
"custom_tag": "Inbox",
|
||||
"identifier": "0",
|
||||
"connection": "0",
|
||||
"ignore_spectre_categories": false,
|
||||
"grouped_transaction_handling": "",
|
||||
"use_entire_opposing_address": false,
|
||||
"map_all_data": true,
|
||||
"pending_transactions": false,
|
||||
"access_token": "",
|
||||
"accounts": {},
|
||||
"new_accounts": [],
|
||||
"date_range": "",
|
||||
"date_range_number": 30,
|
||||
"date_range_unit": "d",
|
||||
"date_range_not_after_unit": "",
|
||||
"date_range_not_after_number": 0,
|
||||
"date_not_before": "",
|
||||
"date_not_after": "",
|
||||
"nordigen_country": "",
|
||||
"nordigen_bank": "",
|
||||
"nordigen_requisitions": {},
|
||||
"nordigen_max_days": "90",
|
||||
"lunch_flow_api_key": "",
|
||||
"conversion": false,
|
||||
"ignore_duplicate_transactions": true
|
||||
}
|
||||
165
firefly/stack.env
Normal file
165
firefly/stack.env
Normal file
@@ -0,0 +1,165 @@
|
||||
# Firefly III
|
||||
APP_ENV=production
|
||||
APP_DEBUG=false
|
||||
SITE_OWNER=mail@example.com
|
||||
APP_KEY=cwj06oiSL03ua4auOUj6upS3X92QoSI3
|
||||
DEFAULT_LANGUAGE=en_US
|
||||
DEFAULT_LOCALE=equal
|
||||
TZ=America/Toronto
|
||||
TRUSTED_PROXIES=
|
||||
LOG_CHANNEL=stack
|
||||
APP_LOG_LEVEL=notice
|
||||
AUDIT_LOG_LEVEL=emergency
|
||||
AUDIT_LOG_CHANNEL=
|
||||
PAPERTRAIL_HOST=
|
||||
PAPERTRAIL_PORT=
|
||||
DB_CONNECTION=mysql
|
||||
DB_HOST=db
|
||||
DB_PORT=3306
|
||||
DB_DATABASE=firefly
|
||||
DB_USERNAME=firefly
|
||||
DB_PASSWORD=m5wyMiU0CeEDmiptcZsCA2DC37Bsa5zH
|
||||
DB_SOCKET=
|
||||
MYSQL_USE_SSL=false
|
||||
MYSQL_SSL_VERIFY_SERVER_CERT=true
|
||||
MYSQL_SSL_CAPATH=/etc/ssl/certs/
|
||||
MYSQL_SSL_CA=
|
||||
MYSQL_SSL_CERT=
|
||||
MYSQL_SSL_KEY=
|
||||
MYSQL_SSL_CIPHER=
|
||||
PGSQL_SSL_MODE=prefer
|
||||
PGSQL_SSL_ROOT_CERT=null
|
||||
PGSQL_SSL_CERT=null
|
||||
PGSQL_SSL_KEY=null
|
||||
PGSQL_SSL_CRL_FILE=null
|
||||
PGSQL_SCHEMA=public
|
||||
CACHE_DRIVER=file
|
||||
SESSION_DRIVER=file
|
||||
REDIS_SCHEME=tcp
|
||||
REDIS_PATH=
|
||||
REDIS_HOST=127.0.0.1
|
||||
REDIS_PORT=6379
|
||||
REDIS_USERNAME=
|
||||
REDIS_PASSWORD=
|
||||
REDIS_DB="0"
|
||||
REDIS_CACHE_DB="1"
|
||||
COOKIE_PATH="/"
|
||||
COOKIE_DOMAIN=
|
||||
COOKIE_SECURE=false
|
||||
COOKIE_SAMESITE=lax
|
||||
MAIL_MAILER=log
|
||||
MAIL_HOST=null
|
||||
MAIL_PORT=2525
|
||||
MAIL_FROM=changeme@example.com
|
||||
MAIL_USERNAME=null
|
||||
MAIL_PASSWORD=null
|
||||
MAIL_ENCRYPTION=null
|
||||
MAIL_SENDMAIL_COMMAND=
|
||||
MAIL_ALLOW_SELF_SIGNED=false
|
||||
MAIL_VERIFY_PEER=true
|
||||
MAIL_VERIFY_PEER_NAME=true
|
||||
MAILGUN_DOMAIN=
|
||||
MAILGUN_SECRET=
|
||||
MAILGUN_ENDPOINT=api.mailgun.net
|
||||
MANDRILL_SECRET=
|
||||
SPARKPOST_SECRET=
|
||||
MAILERSEND_API_KEY=
|
||||
SEND_ERROR_MESSAGE=true
|
||||
SEND_REPORT_JOURNALS=true
|
||||
ENABLE_EXTERNAL_MAP=false
|
||||
ENABLE_EXCHANGE_RATES=false
|
||||
ENABLE_EXTERNAL_RATES=false
|
||||
MAP_DEFAULT_LAT=51.983333
|
||||
MAP_DEFAULT_LONG=5.916667
|
||||
MAP_DEFAULT_ZOOM=6
|
||||
VALID_URL_PROTOCOLS=
|
||||
AUTHENTICATION_GUARD=web
|
||||
AUTHENTICATION_GUARD_HEADER=REMOTE_USER
|
||||
AUTHENTICATION_GUARD_EMAIL=
|
||||
PASSPORT_PRIVATE_KEY=
|
||||
PASSPORT_PUBLIC_KEY=
|
||||
CUSTOM_LOGOUT_URL=
|
||||
DISABLE_FRAME_HEADER=false
|
||||
DISABLE_CSP_HEADER=false
|
||||
TRACKER_SITE_ID=
|
||||
TRACKER_URL=
|
||||
REPORT_ERRORS_ONLINE=false
|
||||
ALLOW_WEBHOOKS=false
|
||||
STATIC_CRON_TOKEN=r6FLbFEYByBXy0kPBJEZzBADjPDYWxtl
|
||||
DKR_CHECK_SQLITE=true
|
||||
APP_NAME=FireflyIII
|
||||
BROADCAST_DRIVER=log
|
||||
QUEUE_DRIVER=sync
|
||||
CACHE_PREFIX=firefly
|
||||
PUSHER_KEY=
|
||||
IPINFO_TOKEN=
|
||||
PUSHER_SECRET=
|
||||
PUSHER_ID=
|
||||
DEMO_USERNAME=
|
||||
DEMO_PASSWORD=
|
||||
USE_RUNNING_BALANCE=false
|
||||
FIREFLY_III_LAYOUT=v1
|
||||
QUERY_PARSER_IMPLEMENTATION=new
|
||||
APP_URL=http://localhost
|
||||
|
||||
# Data Importer
|
||||
FIREFLY_III_URL=http://app:8080
|
||||
VANITY_URL=http://localhost
|
||||
FIREFLY_III_ACCESS_TOKEN=
|
||||
FIREFLY_III_CLIENT_ID=
|
||||
LUNCH_FLOW_API_KEY=
|
||||
LUNCH_FLOW_API_URL=https://lunchflow.app/api/v1/
|
||||
NORDIGEN_ID=
|
||||
NORDIGEN_KEY=
|
||||
NORDIGEN_SANDBOX=false
|
||||
RESPOND_TO_GOCARDLESS_LIMIT=wait
|
||||
GOCARDLESS_GET_ACCOUNT_DETAILS=false
|
||||
GOCARDLESS_GET_BALANCE_DETAILS=false
|
||||
FALLBACK_LOCALE=en_US
|
||||
SPECTRE_APP_ID=
|
||||
SPECTRE_SECRET=
|
||||
SIMPLEFIN_TOKEN=
|
||||
SIMPLEFIN_DEMO_URL=
|
||||
SIMPLEFIN_DEMO_TOKEN=
|
||||
SIMPLEFIN_CONNECTION_TIMEOUT=30
|
||||
SIMPLEFIN_REQUEST_TIMEOUT=60
|
||||
SIMPLEFIN_RETRY_ATTEMPTS=3
|
||||
SIMPLEFIN_RETRY_DELAY=
|
||||
SIMPLEFIN_MAX_TRANSACTIONS=10000
|
||||
SIMPLEFIN_DEFAULT_DATE_RANGE=90
|
||||
SIMPLEFIN_ENABLE_CACHING=true
|
||||
SIMPLEFIN_CACHE_DURATION=3600
|
||||
SIMPLEFIN_SMART_EXPENSE_MATCHING=true
|
||||
SIMPLEFIN_EXPENSE_MATCHING_THRESHOLD=0.7
|
||||
SIMPLEFIN_AUTO_CREATE_EXPENSE_ACCOUNTS=true
|
||||
SIMPLEFIN_ENABLE_TRANSACTION_CLUSTERING=true
|
||||
SIMPLEFIN_CLUSTERING_SIMILARITY_THRESHOLD=0.7
|
||||
USE_CACHE=true
|
||||
IGNORE_DUPLICATE_ERRORS=false
|
||||
IGNORE_NOT_FOUND_TRANSACTIONS=false
|
||||
AUTO_IMPORT_SECRET=
|
||||
CAN_POST_AUTOIMPORT=false
|
||||
CAN_POST_FILES=false
|
||||
IMPORT_DIR_ALLOWLIST=
|
||||
FALLBACK_IN_DIR=false
|
||||
VERIFY_TLS_SECURITY=true
|
||||
JSON_CONFIGURATION_DIR=
|
||||
CONNECTION_TIMEOUT=31.41
|
||||
LOG_RETURN_JSON=false
|
||||
LOG_LEVEL=debug
|
||||
ENABLE_MAIL_REPORT=false
|
||||
EXPECT_SECURE_URL=false
|
||||
FAKE_DATA=false
|
||||
MAIL_DESTINATION=noreply@example.com
|
||||
MAIL_FROM_ADDRESS=noreply@example.com
|
||||
POSTMARK_TOKEN=
|
||||
QUEUE_CONNECTION=sync
|
||||
SESSION_LIFETIME=120
|
||||
IS_EXTERNAL=false
|
||||
ASSET_URL=
|
||||
|
||||
# Database
|
||||
MYSQL_RANDOM_ROOT_PASSWORD=yes
|
||||
MYSQL_USER=firefly
|
||||
MYSQL_PASSWORD=m5wyMiU0CeEDmiptcZsCA2DC37Bsa5zH
|
||||
MYSQL_DATABASE=firefly
|
||||
Reference in New Issue
Block a user