commit e808580c0ffa14b53b9f0e91d72de8a9990276c4 Author: Nathan Rashleigh Date: Fri Aug 8 21:32:12 2025 +1000 dling diff --git a/.gitignore b/.gitignore new file mode 100755 index 0000000..432ea9f --- /dev/null +++ b/.gitignore @@ -0,0 +1,11 @@ +*.sql +*.sql.gz +*.tar.gz + +data/ + +.env + +surf.sublime-workspace + + diff --git a/compose.yaml b/compose.yaml new file mode 100644 index 0000000..534a95d --- /dev/null +++ b/compose.yaml @@ -0,0 +1,26 @@ +services: + slskd: + image: slskd/slskd + ports: + - "5030:5030" + - "5031:5031" + - "50300:50300" + environment: + - SLSKD_REMOTE_CONFIGURATION=true + volumes: + - ./data/slskd:/app + - ./etc/slskd.yml:/app/slskd.yml + + restart: always + + slsk-batchdl: + image: slsk-batchdl-sldl:latest + volumes: + - ./data/slskd/shared:/app/data/shared + command: | + sleep 10000 + + +volumes: + downloads: + shared: diff --git a/etc/slskd.yml b/etc/slskd.yml new file mode 100755 index 0000000..ebe659f --- /dev/null +++ b/etc/slskd.yml @@ -0,0 +1,302 @@ +# debug: false +# headless: false +# remote_configuration: false +# remote_file_management: false +# instance_name: default +# flags: +# no_logo: false +# no_start: false +# no_config_watch: false +# no_connect: false +# no_share_scan: false +# force_share_scan: false +# force_migrations: false +# no_version_check: false +# log_sql: false +# experimental: false +# volatile: false +# case_sensitive_reg_ex: false +# legacy_windows_tcp_keepalive: false +# optimistic_relay_file_info: false +# relay: +# enabled: false +# mode: controller # controller (default), agent, or debug (for local development) +# # controller config is required when running in 'agent' mode +# # this specifies the relay controller that will be controlling this agent +# controller: +# address: https://some.site.com:5000 +# ignore_certificate_errors: false +# api_key: +# secret: +# downloads: false +# # agent config is optional when running in 'controller' mode +# # this specifies all of the agents capable of connecting +# agents: +# my_agent: +# instance_name: my_agent # make sure the top-level instance_name of the agent matches! +# secret: +# cidr: 0.0.0.0/0,::/0 +# permissions: +# file: +# mode: ~ # not for Windows, chmod syntax, e.g. 644, 777. can't escalate beyond umask +# directories: +# incomplete: ~ +# downloads: ~ +shares: + directories: + - /app/shared +# filters: +# - \.ini$ +# - Thumbs.db$ +# - \.DS_Store$ +# cache: +# storage_mode: memory +# workers: 16 +# retention: ~ # retain indefinitely (do not automatically re-scan) +# rooms: +# - ~ +# global: +# upload: +# slots: 20 +# speed_limit: 1000 # in kibibytes +# limits: +# queued: +# files: 500 +# megabytes: 5000 +# daily: +# files: 1000 +# megabytes: 10000 +# failures: 200 +# weekly: +# files: 5000 +# megabytes: 50000 +# failures: 1000 +# download: +# slots: 500 +# speed_limit: 1000 +# groups: +# default: +# upload: +# priority: 500 +# strategy: roundrobin +# slots: 10 +# limits: +# queued: +# files: 150 +# megabytes: 1500 +# daily: ~ # no daily limits (weekly still apply) +# weekly: +# files: 1500 +# megabytes: 15000 +# failures: 150 +# leechers: +# thresholds: +# files: 1 +# directories: 1 +# upload: +# priority: 999 +# strategy: roundrobin +# slots: 1 +# speed_limit: 100 +# limits: +# queued: +# files: 15 +# megabytes: 150 +# daily: +# files: 30 +# megabytes: 300 +# failures: 10 +# weekly: +# files: 150 +# megabytes: 1500 +# failures: 30 +# blacklisted: +# members: +# - +# cidrs: +# - +# user_defined: +# my_buddies: +# upload: +# priority: 250 +# strategy: firstinfirstout +# slots: 10 +# limits: +# queued: +# files: 1000 # override global default +# members: +# - alice +# - bob +# blacklist: +# enabled: true +# file: +# filters: +# search: +# request: +# - ^.{1,2}$ +web: + port: 5030 + https: + disabled: false + port: 5031 + force: false + certificate: + pfx: ~ + password: ~ + url_base: / + content_path: wwwroot + logging: false + authentication: + disabled: false + username: ntwl + password: church +# jwt: +# key: ~ +# ttl: 604800000 +# api_keys: +# my_api_key: +# key: +# role: readonly # readonly, readwrite, administrator +# cidr: 0.0.0.0/0,::/0 +# retention: +# search: 10080 # 7 days, in minutes +# transfers: +# upload: +# succeeded: 1440 # 1 day, in minutes +# errored: 30 +# cancelled: 5 +# download: +# succeeded: 1440 # 1 day, in minutes +# errored: 20160 # 2 weeks, in minutes +# cancelled: 5 +# files: +# complete: 20160 # 2 weeks, in minutes +# incomplete: 43200 # 30 days, in minutes +# logs: 180 # days +# logger: +# disk: false +# no_color: false +# loki: ~ +# metrics: +# enabled: false +# url: /metrics +# authentication: +# disabled: false +# username: slskd +# password: slskd +# feature: +# swagger: false +soulseek: + address: vps.slsknet.org + port: 2271 + username: ntwl + password: "ninety nonsense nights" +# description: | +# A slskd user. https://github.com/slskd/slskd +# picture: path/to/slsk-profile-picture.jpg +# listen_ip_address: 0.0.0.0 +# listen_port: 50300 +# diagnostic_level: Info +# distributed_network: +# disabled: false +# disable_children: false +# child_limit: 25 +# logging: false +# connection: +# timeout: +# connect: 10000 +# inactivity: 15000 +# buffer: +# read: 16384 +# write: 16384 +# transfer: 262144 +# write_queue: 250 +# proxy: +# enabled: false +# address: ~ +# port: ~ +# username: ~ +# password: ~ +# integration: +# webhooks: +# my_webhook: +# on: +# - DownloadFileComplete +# call: +# url: https://192.168.1.42:8080/slskd_webhook +# headers: +# - name: X-API-Key +# value: foobar1234 +# - name: Authorization +# value: Bearer eyJ...ssw5c +# - name: User-Agent +# value: slskd/0.0 +# ignore_certificate_errors: false +# timeout: 5000 # in milliseconds +# retry: +# attempts: 3 +# scripts: +# run_command_with_linux_system_shell: # automatically uses the executable defined in $SHELL +# on: +# - DownloadFileComplete +# run: +# command: 'echo "$SLSKD_SCRIPT_DATA" >> linux_system_shell.txt' +# run_with_sh: +# on: +# - DownloadFileComplete +# run: +# executable: /bin/sh +# args: '-c "echo $SLSKD_SCRIPT_DATA >> linux_sh.txt"' +# run_with_sh_and_args_list: +# on: +# - DownloadFileComplete +# run: +# executable: /bin/sh +# arglist: +# - -c +# - echo $SLSKD_SCRIPT_DATA >> linux_sh_and_args_list.txt +# run_command_with_windows_system_shell: # automatically uses cmd.exe (included with all Windows installs) +# on: +# - DownloadFileComplete +# run: +# command: 'echo "%SLSKD_SCRIPT_DATA%" >> windows_system_shell.txt' +# run_with_windows_cmd: +# on: +# - DownloadFileComplete +# run: +# executable: cmd.exe +# args: '/c "echo "%SLSKD_SCRIPT_DATA%" >> windows_cmd.txt"' +# run_with_windows_git_bash: +# on: +# - DownloadFileComplete +# run: +# executable: C:\Program Files\Git\bin\bash.exe +# args: '-c "echo "$SLSKD_SCRIPT_DATA" >> windows_git_bash.txt"' +# run_with_windows_cmd_and_args_list: +# on: +# - DownloadFileComplete +# run: +# executable: cmd.exe +# arglist: +# - /c +# - 'echo "%SLSKD_SCRIPT_DATA%" >> windows_cmd_and_args_list.txt' +# ftp: +# enabled: false +# address: ~ +# port: ~ +# username: ~ +# password: ~ +# remote_path: / +# encryption_mode: auto +# ignore_certificate_errors: false +# overwrite_existing: true +# connection_timeout: 5000 +# retry_attempts: 3 +# pushbullet: +# enabled: false +# access_token: ~ +# notification_prefix: "From slskd:" +# notify_on_private_message: true +# notify_on_room_mention: true +# retry_attempts: 3 +# cooldown_time: 900000 \ No newline at end of file diff --git a/justfile b/justfile new file mode 100644 index 0000000..2f49689 --- /dev/null +++ b/justfile @@ -0,0 +1,14 @@ +up: + docker compose -f compose.yaml up --remove-orphans + +down: + docker compose -f compose.yaml down -v --remove-orphans + +build: + docker compose -f compose.yaml build + +run CTR: + docker compose -f compose.yaml run {{CTR}} bash + +exec CTR: + docker compose -f compose.yaml exec {{CTR}} bash diff --git a/slskdecks.sublime-project b/slskdecks.sublime-project new file mode 100755 index 0000000..a026f0a --- /dev/null +++ b/slskdecks.sublime-project @@ -0,0 +1,8 @@ +{ + "folders": + [ + { + "path": "." + } + ] +}