├── .flake8 ├── .gitattributes ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── bug_report_zh.md │ ├── feature_request.md │ └── feature_request_zh.md └── workflows │ └── linter.yml ├── .gitignore ├── .php-cs-fixer.dist.php ├── .vscode ├── i18n-ally-custom-framework.yml └── settings.json ├── CHANGELOG.md ├── LICENSE ├── Pipfile ├── Pipfile.lock ├── README.md ├── README_zh.md ├── bump-version.sh ├── composer.json ├── composer.lock ├── localazy.json ├── onekey.sh ├── packages ├── package │ ├── install │ │ ├── installpackage-art │ │ ├── installpackage-autodlirssi │ │ ├── installpackage-btsync │ │ ├── installpackage-cifs │ │ ├── installpackage-deluge │ │ ├── installpackage-denyhosts │ │ ├── installpackage-docker │ │ ├── installpackage-emby │ │ ├── installpackage-fail2ban │ │ ├── installpackage-ffmpeg │ │ ├── installpackage-filebrowser │ │ ├── installpackage-filebrowser-ee │ │ ├── installpackage-flexget │ │ ├── installpackage-flood │ │ ├── installpackage-h5ai │ │ ├── installpackage-jellyfin │ │ ├── installpackage-lecert │ │ ├── installpackage-linuxrar │ │ ├── installpackage-mktorrent │ │ ├── installpackage-netdata │ │ ├── installpackage-nfs │ │ ├── installpackage-novnc │ │ ├── installpackage-openvpn │ │ ├── installpackage-plex │ │ ├── installpackage-pyenv │ │ ├── installpackage-qbclientblocker │ │ ├── installpackage-qbittorrent │ │ ├── installpackage-rclone │ │ ├── installpackage-rtorrent │ │ ├── installpackage-rutorrent │ │ ├── installpackage-sabnzbd │ │ ├── installpackage-speedtest │ │ ├── installpackage-syncthing │ │ ├── installpackage-transmission │ │ ├── installpackage-webdav │ │ ├── installpackage-x2go │ │ └── installpackage-znc │ ├── remove │ │ ├── removepackage-art │ │ ├── removepackage-autodlirssi │ │ ├── removepackage-btsync │ │ ├── removepackage-cifs │ │ ├── removepackage-deluge │ │ ├── removepackage-denyhosts │ │ ├── removepackage-docker │ │ ├── removepackage-emby │ │ ├── removepackage-fail2ban │ │ ├── removepackage-ffmpeg │ │ ├── removepackage-filebrowser │ │ ├── removepackage-filebrowser-ee │ │ ├── removepackage-flexget │ │ ├── removepackage-flood │ │ ├── removepackage-h5ai │ │ ├── removepackage-jellyfin │ │ ├── removepackage-lecert │ │ ├── removepackage-linuxrar │ │ ├── removepackage-mktorrent │ │ ├── removepackage-netdata │ │ ├── removepackage-nfs │ │ ├── removepackage-novnc │ │ ├── removepackage-openvpn │ │ ├── removepackage-plex │ │ ├── removepackage-pyenv │ │ ├── removepackage-qbclientblocker │ │ ├── removepackage-qbittorrent │ │ ├── removepackage-rclone │ │ ├── removepackage-rtorrent │ │ ├── removepackage-rutorrent │ │ ├── removepackage-sabnzbd │ │ ├── removepackage-speedtest │ │ ├── removepackage-syncthing │ │ ├── removepackage-transmission │ │ ├── removepackage-webdav │ │ ├── removepackage-x2go │ │ └── removepackage-znc │ └── update │ │ ├── updatepackage-deluge │ │ ├── updatepackage-filebrowser │ │ ├── updatepackage-filebrowser-ee │ │ ├── updatepackage-flexget │ │ ├── updatepackage-netdata │ │ ├── updatepackage-qbclientblocker │ │ ├── updatepackage-qbittorrent │ │ ├── updatepackage-rtorrent │ │ └── updatepackage-rutorrent ├── plugin │ ├── install │ │ ├── installplugin-_getdir │ │ ├── installplugin-_noty │ │ ├── installplugin-_task │ │ ├── installplugin-autotools │ │ ├── installplugin-check_port │ │ ├── installplugin-chunks │ │ ├── installplugin-cookies │ │ ├── installplugin-cpuload │ │ ├── installplugin-create │ │ ├── installplugin-data │ │ ├── installplugin-datadir │ │ ├── installplugin-diskspace │ │ ├── installplugin-edit │ │ ├── installplugin-erasedata │ │ ├── installplugin-extratio │ │ ├── installplugin-extsearch │ │ ├── installplugin-feeds │ │ ├── installplugin-filedrop │ │ ├── installplugin-filemanager │ │ ├── installplugin-fileshare │ │ ├── installplugin-fileupload │ │ ├── installplugin-geoip │ │ ├── installplugin-history │ │ ├── installplugin-httprpc │ │ ├── installplugin-ipad │ │ ├── installplugin-loginmgr │ │ ├── installplugin-logoff │ │ ├── installplugin-lookat │ │ ├── installplugin-mediainfo │ │ ├── installplugin-mobile │ │ ├── installplugin-pausewebui │ │ ├── installplugin-ratio │ │ ├── installplugin-ratiocolor │ │ ├── installplugin-retrackers │ │ ├── installplugin-rpc │ │ ├── installplugin-rss │ │ ├── installplugin-rssurlrewrite │ │ ├── installplugin-rutracker_check │ │ ├── installplugin-scheduler │ │ ├── installplugin-screenshots │ │ ├── installplugin-seedingtime │ │ ├── installplugin-show_peers_like_wtorrent │ │ ├── installplugin-source │ │ ├── installplugin-spectrogram │ │ ├── installplugin-stream │ │ ├── installplugin-theme │ │ ├── installplugin-throttle │ │ ├── installplugin-tracklabels │ │ ├── installplugin-trafic │ │ ├── installplugin-unpack │ │ └── installplugin-xmpp │ └── remove │ │ ├── removeplugin-_getdir │ │ ├── removeplugin-_noty │ │ ├── removeplugin-_task │ │ ├── removeplugin-autotools │ │ ├── removeplugin-check_port │ │ ├── removeplugin-chunks │ │ ├── removeplugin-cookies │ │ ├── removeplugin-cpuload │ │ ├── removeplugin-create │ │ ├── removeplugin-data │ │ ├── removeplugin-datadir │ │ ├── removeplugin-diskspace │ │ ├── removeplugin-edit │ │ ├── removeplugin-erasedata │ │ ├── removeplugin-extratio │ │ ├── removeplugin-extsearch │ │ ├── removeplugin-feeds │ │ ├── removeplugin-filedrop │ │ ├── removeplugin-filemanager │ │ ├── removeplugin-fileshare │ │ ├── removeplugin-fileupload │ │ ├── removeplugin-geoip │ │ ├── removeplugin-history │ │ ├── removeplugin-httprpc │ │ ├── removeplugin-ipad │ │ ├── removeplugin-loginmgr │ │ ├── removeplugin-logoff │ │ ├── removeplugin-lookat │ │ ├── removeplugin-mediainfo │ │ ├── removeplugin-mobile │ │ ├── removeplugin-pausewebui │ │ ├── removeplugin-ratio │ │ ├── removeplugin-ratiocolor │ │ ├── removeplugin-retrackers │ │ ├── removeplugin-rpc │ │ ├── removeplugin-rss │ │ ├── removeplugin-rssurlrewrite │ │ ├── removeplugin-rutracker_check │ │ ├── removeplugin-scheduler │ │ ├── removeplugin-screenshots │ │ ├── removeplugin-seedingtime │ │ ├── removeplugin-show_peers_like_wtorrent │ │ ├── removeplugin-source │ │ ├── removeplugin-spectrogram │ │ ├── removeplugin-stream │ │ ├── removeplugin-theme │ │ ├── removeplugin-throttle │ │ ├── removeplugin-tracklabels │ │ ├── removeplugin-trafic │ │ ├── removeplugin-unpack │ │ └── removeplugin-xmpp └── system │ ├── auxiliary │ ├── clean_log │ ├── clean_mem │ ├── deluge.Userpass.py │ ├── deluge.addHost.py │ ├── deluge.changeUserpass.py │ ├── denyunban │ ├── failunban │ ├── fio-bench.py │ ├── fixDpkg │ ├── fixHome │ ├── getfb.sh │ ├── install-BBR.sh │ ├── iotest │ ├── logCollector.sh │ ├── php-fpm-cli │ ├── qbittorrent-nox-static.sh │ ├── quickbox-logo │ ├── set_interface │ ├── set_mount │ └── showspace │ ├── box │ ├── lang │ ├── langSelect-lang_da │ ├── langSelect-lang_de │ ├── langSelect-lang_en │ ├── langSelect-lang_es │ ├── langSelect-lang_fr │ └── langSelect-lang_zh │ ├── qbUpdate │ ├── theme │ ├── themeSelect-defaulted │ └── themeSelect-smoked │ ├── update │ ├── qbUpdateDashboard │ ├── qbUpdateRepo │ └── qbUpdateService │ └── users │ └── changePass ├── phpstan.neon ├── setup.sh └── setup ├── dashboard ├── .gitignore ├── README.md ├── custom │ └── .gitignore ├── db │ ├── .gitignore │ ├── branding-l.php │ ├── branding-m.php │ └── locale.php ├── eslint.config.mjs ├── fileshare │ └── .gitkeep ├── fonts │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ └── glyphicons-halflings-regular.woff2 ├── img │ ├── brands │ │ ├── btsync.png │ │ ├── deluge.png │ │ ├── emby.png │ │ ├── filebrowser.png │ │ ├── flexget.png │ │ ├── flood.png │ │ ├── jellyfin.png │ │ ├── netdata.png │ │ ├── novnc.png │ │ ├── plex.png │ │ ├── qbittorrent.png │ │ ├── rclone.png │ │ ├── rtorrent.png │ │ ├── sabnzbd.png │ │ ├── speedtest.png │ │ ├── syncthing.png │ │ ├── transmission.png │ │ ├── x2go.png │ │ └── znc.png │ ├── favicon │ │ ├── android-chrome-192x192.png │ │ ├── android-chrome-512x512.png │ │ ├── apple-touch-icon.png │ │ ├── browserconfig.xml │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── favicon.ico │ │ ├── manifest.json │ │ ├── mstile-150x150.png │ │ └── safari-pinned-tab.svg │ ├── logo-dark.png │ ├── logo-light.png │ └── themes │ │ ├── opt_defaulted.png │ │ └── opt_smoked.png ├── inc │ ├── config.php │ ├── info.bw_page.php │ ├── info.lang.php │ ├── info.package.php │ ├── info.plugin.php │ ├── info.system.php │ ├── info.theme.php │ ├── localize.php │ ├── panel.app_service.ws.js │ ├── panel.app_status.ws.js │ ├── panel.end.php │ ├── panel.header.php │ ├── panel.menu.php │ ├── panel.scripts.php │ └── util.php ├── index.php ├── js │ └── quick.js ├── lang │ ├── flag_lang_da.png │ ├── flag_lang_de.png │ ├── flag_lang_en.png │ ├── flag_lang_es.png │ ├── flag_lang_fr.png │ ├── flag_lang_zh.png │ ├── lang_da.json │ ├── lang_de.json │ ├── lang_en.json │ ├── lang_es.json │ ├── lang_fr.json │ └── lang_zh-Hans-CN.json ├── lib │ ├── animate.css │ │ └── animate.min.css │ ├── ansi_up │ │ └── ansi_up.min.js │ ├── bootbox │ │ ├── bootbox.all.min.js │ │ ├── bootbox.locales.min.js │ │ └── bootbox.min.js │ ├── bootstrap │ │ └── js │ │ │ └── bootstrap.min.js │ ├── datatables │ │ ├── css │ │ │ ├── dataTables.bootstrap.min.css │ │ │ └── jquery.dataTables.min.css │ │ ├── images │ │ │ ├── sort_asc.png │ │ │ ├── sort_asc_disabled.png │ │ │ ├── sort_both.png │ │ │ ├── sort_desc.png │ │ │ └── sort_desc_disabled.png │ │ └── js │ │ │ ├── dataTables.bootstrap.min.js │ │ │ └── jquery.dataTables.min.js │ ├── font-awesome │ │ ├── css │ │ │ └── font-awesome.min.css │ │ └── fonts │ │ │ ├── FontAwesome.otf │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.svg │ │ │ ├── fontawesome-webfont.ttf │ │ │ ├── fontawesome-webfont.woff │ │ │ └── fontawesome-webfont.woff2 │ ├── hover.css │ │ └── hover-min.css │ ├── jquery-gritter │ │ ├── css │ │ │ └── jquery.gritter.css │ │ ├── images │ │ │ ├── gritter-light.png │ │ │ ├── gritter-long.png │ │ │ ├── gritter.png │ │ │ └── ie-spacer.gif │ │ └── js │ │ │ └── jquery.gritter.min.js │ ├── jquery-toggles │ │ ├── toggles-full.css │ │ └── toggles.min.js │ ├── jquery-ui-touch-punch │ │ └── jquery.ui.touch-punch.min.js │ ├── jquery-ui │ │ ├── images │ │ │ ├── ui-icons_444444_256x240.png │ │ │ ├── ui-icons_555555_256x240.png │ │ │ ├── ui-icons_777620_256x240.png │ │ │ ├── ui-icons_777777_256x240.png │ │ │ ├── ui-icons_cc0000_256x240.png │ │ │ └── ui-icons_ffffff_256x240.png │ │ ├── jquery-ui.min.css │ │ └── jquery-ui.min.js │ ├── jquery │ │ └── jquery.min.js │ ├── lazysizes │ │ └── lazysizes.min.js │ ├── lobipanel │ │ ├── css │ │ │ └── lobipanel.min.css │ │ └── js │ │ │ └── lobipanel.min.js │ ├── perfect-scrollbar │ │ ├── css │ │ │ └── perfect-scrollbar.min.css │ │ └── js │ │ │ └── perfect-scrollbar.min.js │ ├── select2 │ │ ├── select2.min.css │ │ └── select2.min.js │ ├── socket.io │ │ └── socket.io.min.js │ └── visibility │ │ ├── visibility.core.js │ │ ├── visibility.fallback.js │ │ └── visibility.timers.js ├── package-lock.json ├── package.json ├── skins │ └── .gitignore ├── widgets │ ├── pmc.php │ ├── service_control.php │ └── service_status.php └── ws │ ├── .gitignore │ ├── build │ └── webpack.config.js │ ├── config │ ├── commands.json │ ├── download.json │ ├── menu.json │ └── packages.json │ ├── dist │ ├── server.js │ └── server.js.LICENSE.txt │ ├── eslint.config.mjs │ ├── lang │ ├── package-lock.json │ ├── package.json │ ├── quickbox-ws.service │ ├── src │ ├── constant.ts │ ├── handler │ │ ├── exec.ts │ │ ├── i18n.ts │ │ ├── log.ts │ │ ├── message.ts │ │ └── utils │ │ │ └── command.ts │ ├── i18n.ts │ ├── info.ts │ ├── libs │ │ └── i18n │ │ │ ├── I18n.ts │ │ │ ├── LICENSE.md │ │ │ ├── Locales.ts │ │ │ ├── MissingTranslation.ts │ │ │ ├── Pluralization.ts │ │ │ ├── helpers │ │ │ ├── camelCaseKeys.ts │ │ │ ├── createTranslationOptions.ts │ │ │ ├── expandRoundMode.ts │ │ │ ├── formatNumber.ts │ │ │ ├── getFullScope.ts │ │ │ ├── index.ts │ │ │ ├── inferType.ts │ │ │ ├── interpolate.ts │ │ │ ├── isSet.ts │ │ │ ├── lookup.ts │ │ │ ├── numberToDelimited.ts │ │ │ ├── numberToHuman.ts │ │ │ ├── numberToHumanSize.ts │ │ │ ├── parseDate.ts │ │ │ ├── pluralize.ts │ │ │ ├── roundNumber.ts │ │ │ ├── strftime.ts │ │ │ └── timeAgoInWords.ts │ │ │ ├── index.ts │ │ │ ├── make-plural.ts │ │ │ ├── pluralize │ │ │ ├── ru.ts │ │ │ └── westSlavic.ts │ │ │ └── typing.ts │ ├── server.tsx │ ├── utils │ │ ├── index.ts │ │ └── vnstat.ts │ ├── watchedConfig.ts │ └── widgets │ │ ├── bw_tables.tsx │ │ ├── disk_data.tsx │ │ ├── load.ts │ │ ├── net_status.ts │ │ ├── ram_stats.tsx │ │ ├── service_status.tsx │ │ └── up.tsx │ ├── tests │ ├── client.js │ ├── command.ts │ └── test-server.js │ └── tsconfig.json ├── lang ├── en.lang └── zh-cn.lang ├── scripts ├── deluge.sh ├── ffmpeg.sh ├── filebrowser.sh ├── lecert.sh ├── linuxrar.sh ├── mktorrent.sh ├── qbittorrent.sh ├── rtorrent.sh └── transmission.sh ├── templates ├── bash_qb.template ├── bash_qb_extras.template ├── lshell │ └── lshell.conf.template ├── motd │ └── 01-custom ├── nginx │ ├── dashboard.conf.template │ ├── default.template │ ├── fancyindex.conf.template │ ├── nginx.conf.new.template │ ├── nginx.conf.old.template │ ├── openssl.cnf.template │ ├── proxy.conf.template │ └── ssl-params.conf.template ├── openssl.cnf.template ├── skel │ ├── .bash_logout │ ├── .bashrc │ └── .profile ├── source.list │ ├── debian.new.template │ ├── debian.new.tuna.template │ ├── debian.template │ ├── debian.tuna.template │ ├── ubuntu.template │ └── ubuntu.tuna.template ├── sudoers.template ├── systemd │ ├── quickbox-ws.service.template │ └── ttyd.service.template ├── tracker │ ├── denypublic.template │ ├── hostsTrackers.template │ └── trackers.template └── vsftpd │ ├── vsftpd.conf.template │ └── vsftpd.conf.tls.template └── themes ├── .gitignore ├── README.md ├── defaulted ├── .gitignore └── skins │ ├── filters.svg │ ├── quick.css │ └── resources.svg └── smoked ├── .gitignore └── skins ├── filters.svg ├── quick.css └── resources.svg /.flake8: -------------------------------------------------------------------------------- 1 | [flake8] 2 | ignore = E501,E731,W503 3 | max-line-length = 120 4 | max-complexity = 32 5 | statistics = yes 6 | show-source = yes 7 | show-pep8 = yes 8 | exclude =.git,__pycache__,node_modules 9 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Set the default behavior, in case people don't have core.autocrlf set. 2 | * text=auto 3 | 4 | # Explicitly declare text files you want to always be normalized and converted 5 | # to native line endings on checkout. 6 | *.md text 7 | 8 | # Declare files that will always have LF line endings on checkout. 9 | *.sh text eol=lf 10 | packages/**/* text eol=lf 11 | setup/lang/**/* text eol=lf 12 | setup/templates/**/* text eol=lf 13 | 14 | # Denote all files that are truly binary and should not be modified. 15 | *.gif binary 16 | *.jpg binary 17 | *.png binary 18 | *.eot binary 19 | *.ttf binary 20 | *.woff binary 21 | *.woff2 binary 22 | 23 | # config for bun lock file 24 | *.lockb binary diff=lockb 25 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior (or command): 15 | 16 | 1. Go to '...' 17 | 2. Click on '....' 18 | 3. Scroll down to '....' 19 | 4. See error 20 | 21 | **Expected behavior** 22 | A clear and concise description of what you expected to happen. 23 | 24 | **Screenshots** (optical) 25 | If applicable, add screenshots to help explain your problem. You can generate a table to describe your information, here is an [online table generator](https://www.tablesgenerator.com/markdown_tables). 26 | 27 | --- 28 | 29 | **Additional context** 30 | Add any other context about the problem here. 31 | 32 | **Desktop (please complete the following information):** 33 | 34 | - OS: [e.g. iOS] 35 | - Browser [e.g. chrome, safari] 36 | - Version [e.g. 22] 37 | - Executed Command (if exist) [e.g. `box update quickbox`] 38 | 39 | **Smartphone (please complete the following information):** 40 | 41 | - Device: [e.g. iPhone6] 42 | - OS: [e.g. iOS8.1] 43 | - Browser [e.g. stock browser, safari] 44 | - Version [e.g. 22] 45 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report_zh.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 报告 Bug 3 | about: 创建一个报告以帮助修复问题 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | 9 | --- 10 | 11 | **描述 Bug** 12 | 简单明了的描述 Bug 13 | 14 | **重现 Bug** 15 | 可以重现该 Bug 的操作 (或命令): 16 | 17 | 1. 转到 '...' 页面 18 | 2. 点击 '....' 19 | 3. 下拉到 '....' 20 | 4. 出现错误 21 | 22 | **期望的结果** 23 | 简单明了的描述一下你期望的表现。 24 | 25 | **截图** (可选) 26 | 如果你有合适的截图,在此处添加,他将会帮助你解释问题。你也可以创建一个表格来描述你的信息,这是一个 [在线的表格 markdown 代码生成器](https://www.tablesgenerator.com/markdown_tables). 27 | 28 | --- 29 | 30 | **附加内容** 31 | 此处添加其他附加信息。 32 | 33 | **桌面系统 (请填写下列信息):** 34 | 35 | - 操作系统: [例如 iOS] 36 | - 浏览器 [例如 chrome, safari] 37 | - 版本 [例如 22] 38 | - 执行的命令 (如果有) [例如 `box update quickbox`] 39 | 40 | **智能手机 (请填写下列信息):** 41 | 42 | - 设备: [例如. iPhone6] 43 | - 操作系统: [例如. iOS8.1] 44 | - 浏览器 [例如 stock browser, safari] 45 | - 版本 [例如 22] -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request_zh.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 新特性请求 3 | about: 为该项目提供新功能建议 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | 9 | --- 10 | 11 | **请描述您请求的功能** 12 | 清楚,简洁地说明问题所在。 例如 我对[...]的功能不满意 13 | 14 | **描述您想要的解决方案** 15 | 对您想要的功能简洁明了的描述。 16 | 17 | **描述您考虑过的替代方案** 18 | 对您考虑过的所有替代解决方案简洁明了的描述。 19 | 20 | **附加内容** 21 | 在此处添加有关功能请求的内容,例如文字,截图。 -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Windows image file caches 2 | Thumbs.db 3 | ehthumbs.db 4 | 5 | # Folder config file 6 | Desktop.ini 7 | 8 | # Recycle Bin used on file shares 9 | $RECYCLE.BIN/ 10 | 11 | # Windows Installer files 12 | *.cab 13 | *.msi 14 | *.msm 15 | *.msp 16 | 17 | # Windows shortcuts 18 | *.lnk 19 | 20 | # ========================= 21 | # Operating System Files 22 | # ========================= 23 | 24 | # OSX 25 | # ========================= 26 | 27 | .DS_Store 28 | .AppleDouble 29 | .LSOverride 30 | 31 | # Thumbnails 32 | ._* 33 | 34 | # Files that might appear in the root of a volume 35 | .DocumentRevisions-V100 36 | .fseventsd 37 | .Spotlight-V100 38 | .TemporaryItems 39 | .Trashes 40 | .VolumeIcon.icns 41 | 42 | # Directories potentially created on remote AFP share 43 | .AppleDB 44 | .AppleDesktop 45 | Network Trash Folder 46 | Temporary Items 47 | .apdisk 48 | assets 49 | 50 | # Directories created by composer 51 | vendor/ 52 | *.cache 53 | 54 | # Directories created by npm 55 | node_modules/ 56 | 57 | # Key file for localazy 58 | localazy.keys.json 59 | -------------------------------------------------------------------------------- /.vscode/i18n-ally-custom-framework.yml: -------------------------------------------------------------------------------- 1 | # An array of strings which contain Language Ids defined by VS Code 2 | # You can check avaliable language ids here: https://code.visualstudio.com/docs/languages/overview#_language-id 3 | languageIds: 4 | - php 5 | - shell 6 | - typescript 7 | 8 | # An array of RegExes to find the key usage. **The key should be captured in the first match group**. 9 | # You should unescape RegEx strings in order to fit in the YAML file 10 | # To help with this, you can use https://www.freeformatter.com/json-escape.html 11 | usageMatchRegex: 12 | # The following example shows how to detect `t("your.i18n.keys")` 13 | # the `{key}` will be placed by a proper keypath matching regex, 14 | # you can ignore it and use your own matching rules as well 15 | - "[^\\w\\d]T\\(['\"]({key})['\"]" 16 | - "[^\\w\\d]i18n.t\\(['\"]({key})['\"]" 17 | 18 | 19 | # An array of strings containing refactor templates. 20 | # The "$1" will be replaced by the keypath specified. 21 | # Optional: uncomment the following two lines to use 22 | 23 | # refactorTemplates: 24 | # - i18n.get("$1") 25 | 26 | 27 | # If set to true, only enables this custom framework (will disable all built-in frameworks) 28 | monopoly: true 29 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "i18n-ally.localesPaths": [ 3 | "packages/**/**/lang", 4 | "setup/**/**/lang", 5 | ], 6 | "i18n-ally.pathMatcher": "lang_{locale}.json", 7 | "i18n-ally.sourceLanguage": "en", 8 | "i18n-ally.displayLanguage": "en", 9 | "i18n-ally.keystyle": "nested", 10 | } 11 | -------------------------------------------------------------------------------- /Pipfile: -------------------------------------------------------------------------------- 1 | [[source]] 2 | url = "https://pypi.org/simple" 3 | verify_ssl = true 4 | name = "pypi" 5 | 6 | [packages] 7 | prettytable = "*" 8 | 9 | [dev-packages] 10 | flake8 = "*" 11 | 12 | [requires] 13 | 14 | [scripts] 15 | flake8 = "flake8 packages/system/auxiliary/" 16 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "require-dev": { 3 | "friendsofphp/php-cs-fixer": "^3.65.0", 4 | "phpstan/phpstan": "^2.0.3", 5 | "phpstan/phpstan-strict-rules": "^2.0.0", 6 | "phpstan/extension-installer": "^1.4.3" 7 | }, 8 | "scripts": { 9 | "lint": ["export PHP_CS_FIXER_IGNORE_ENV=1 && php-cs-fixer fix -n -vv --dry-run --using-cache no"], 10 | "lint-fix": ["export PHP_CS_FIXER_IGNORE_ENV=1 && php-cs-fixer fix -n -vv --using-cache no"], 11 | "analyse": ["phpstan analyse -c phpstan.neon"] 12 | }, 13 | "config": { 14 | "platform": { 15 | "php": "7.4" 16 | }, 17 | "allow-plugins": { 18 | "phpstan/extension-installer": true 19 | } 20 | }, 21 | "extra": { 22 | "phpstan": { 23 | "includes": [ 24 | "extension.neon" 25 | ] 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /localazy.json: -------------------------------------------------------------------------------- 1 | { 2 | "upload": { 3 | "type": "json", 4 | "deprecateMissing": true, 5 | "files": [ 6 | { 7 | "pattern": "setup/dashboard/lang/lang_en.json", 8 | "lang": "en", 9 | "file": "lang.json" 10 | }, 11 | { 12 | "group": "existing", 13 | "pattern": "setup/dashboard/lang/lang_*.json", 14 | "excludes": ["setup/dashboard/lang/lang_en.json"], 15 | "lang": "${autodetectLang}" 16 | } 17 | ] 18 | }, 19 | "download": { 20 | "includeSourceLang": false, 21 | "files": "setup/dashboard/lang/lang_${lang}.json" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /packages/plugin/install/installplugin-_getdir: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Install _getdir plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _installplugin-getdir() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Accessing _getdir in the plugin vault ... " >>"${OUTTO}" 2>&1 23 | PLUGINVAULT="/usr/local/bin/quickbox/rutorrent/plugins/" 24 | cd "${rutorrent}plugins" 25 | sleep 5 26 | 27 | echo "Installing _getdir plugin ... " >>"${OUTTO}" 2>&1 28 | PLUGIN="_getdir" 29 | for i in $PLUGIN; do 30 | cp -R "${PLUGINVAULT}$i" . 31 | done 32 | sleep 5 33 | 34 | echo "Adjusting permissions ... " >>"${OUTTO}" 2>&1 35 | chown -R www-data: ${rutorrent}plugins/$PLUGIN 36 | echo "_Getdir Plugin Install Complete!" >>"${OUTTO}" 2>&1 37 | 38 | sleep 5 39 | echo >>"${OUTTO}" 2>&1 40 | echo >>"${OUTTO}" 2>&1 41 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 42 | 43 | exit 44 | } 45 | 46 | _installplugin-getdir 47 | -------------------------------------------------------------------------------- /packages/plugin/install/installplugin-_task: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Install _task plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _installplugin-task() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Accessing _task in the plugin vault ... " >>"${OUTTO}" 2>&1 23 | PLUGINVAULT="/usr/local/bin/quickbox/rutorrent/plugins/" 24 | cd "${rutorrent}plugins" 25 | sleep 5 26 | 27 | echo "Installing _task plugin ... " >>"${OUTTO}" 2>&1 28 | PLUGIN="_task" 29 | for i in $PLUGIN; do 30 | cp -R "${PLUGINVAULT}$i" . 31 | done 32 | sleep 5 33 | 34 | echo "Adjusting permissions ... " >>"${OUTTO}" 2>&1 35 | chown -R www-data: ${rutorrent}plugins/$PLUGIN 36 | echo "_Task Plugin Install Complete!" >>"${OUTTO}" 2>&1 37 | 38 | sleep 5 39 | echo >>"${OUTTO}" 2>&1 40 | echo >>"${OUTTO}" 2>&1 41 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 42 | 43 | exit 44 | } 45 | 46 | _installplugin-task 47 | -------------------------------------------------------------------------------- /packages/plugin/install/installplugin-cookies: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Install cookies plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _installplugin-cookies() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Accessing cookies in the plugin vault ... " >>"${OUTTO}" 2>&1 23 | PLUGINVAULT="/usr/local/bin/quickbox/rutorrent/plugins/" 24 | cd "${rutorrent}plugins" 25 | sleep 5 26 | 27 | echo "Installing cookies plugin ... " >>"${OUTTO}" 2>&1 28 | PLUGIN="cookies" 29 | for i in $PLUGIN; do 30 | cp -R "${PLUGINVAULT}$i" . 31 | done 32 | sleep 5 33 | 34 | echo "Adjusting permissions ... " >>"${OUTTO}" 2>&1 35 | chown -R www-data: ${rutorrent}plugins/$PLUGIN 36 | echo "Cookies Plugin Install Complete!" >>"${OUTTO}" 2>&1 37 | 38 | sleep 5 39 | echo >>"${OUTTO}" 2>&1 40 | echo >>"${OUTTO}" 2>&1 41 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 42 | 43 | exit 44 | } 45 | 46 | _installplugin-cookies 47 | -------------------------------------------------------------------------------- /packages/plugin/install/installplugin-cpuload: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Install cpuload plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _installplugin-cpuload() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Accessing cpuload in the plugin vault ... " >>"${OUTTO}" 2>&1 23 | PLUGINVAULT="/usr/local/bin/quickbox/rutorrent/plugins/" 24 | cd "${rutorrent}plugins" 25 | sleep 5 26 | 27 | echo "Installing cpuload plugin ... " >>"${OUTTO}" 2>&1 28 | PLUGIN="cpuload" 29 | for i in $PLUGIN; do 30 | cp -R "${PLUGINVAULT}$i" . 31 | done 32 | sleep 5 33 | 34 | echo "Adjusting permissions ... " >>"${OUTTO}" 2>&1 35 | chown -R www-data: ${rutorrent}plugins/$PLUGIN 36 | echo "CPUload Plugin Install Complete!" >>"${OUTTO}" 2>&1 37 | 38 | sleep 5 39 | echo >>"${OUTTO}" 2>&1 40 | echo >>"${OUTTO}" 2>&1 41 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 42 | 43 | exit 44 | } 45 | 46 | _installplugin-cpuload 47 | -------------------------------------------------------------------------------- /packages/plugin/install/installplugin-create: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Install create plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _installplugin-create() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Accessing create in the plugin vault ... " >>"${OUTTO}" 2>&1 23 | PLUGINVAULT="/usr/local/bin/quickbox/rutorrent/plugins/" 24 | cd "${rutorrent}plugins" 25 | sleep 5 26 | 27 | echo "Installing create plugin ... " >>"${OUTTO}" 2>&1 28 | PLUGIN="create" 29 | for i in $PLUGIN; do 30 | cp -R "${PLUGINVAULT}$i" . 31 | done 32 | sleep 5 33 | 34 | echo "Adjusting permissions ... " >>"${OUTTO}" 2>&1 35 | chown -R www-data: ${rutorrent}plugins/$PLUGIN 36 | echo "Create Plugin Install Complete!" >>"${OUTTO}" 2>&1 37 | 38 | sleep 5 39 | echo >>"${OUTTO}" 2>&1 40 | echo >>"${OUTTO}" 2>&1 41 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 42 | 43 | exit 44 | } 45 | 46 | _installplugin-create 47 | -------------------------------------------------------------------------------- /packages/plugin/install/installplugin-data: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Install data plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _installplugin-data() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Accessing data in the plugin vault ... " >>"${OUTTO}" 2>&1 23 | PLUGINVAULT="/usr/local/bin/quickbox/rutorrent/plugins/" 24 | cd "${rutorrent}plugins" 25 | sleep 5 26 | 27 | echo "Installing data plugin ... " >>"${OUTTO}" 2>&1 28 | PLUGIN="data" 29 | for i in $PLUGIN; do 30 | cp -R "${PLUGINVAULT}$i" . 31 | done 32 | sleep 5 33 | 34 | echo "Adjusting permissions ... " >>"${OUTTO}" 2>&1 35 | chown -R www-data: ${rutorrent}plugins/$PLUGIN 36 | echo "Data Plugin Install Complete!" >>"${OUTTO}" 2>&1 37 | 38 | sleep 5 39 | echo >>"${OUTTO}" 2>&1 40 | echo >>"${OUTTO}" 2>&1 41 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 42 | 43 | exit 44 | } 45 | 46 | _installplugin-data 47 | -------------------------------------------------------------------------------- /packages/plugin/install/installplugin-edit: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Install edit plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _installplugin-edit() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Accessing edit in the plugin vault ... " >>"${OUTTO}" 2>&1 23 | PLUGINVAULT="/usr/local/bin/quickbox/rutorrent/plugins/" 24 | cd "${rutorrent}plugins" 25 | sleep 5 26 | 27 | echo "Installing edit plugin ... " >>"${OUTTO}" 2>&1 28 | PLUGIN="edit" 29 | for i in $PLUGIN; do 30 | cp -R "${PLUGINVAULT}$i" . 31 | done 32 | sleep 5 33 | 34 | echo "Adjusting permissions ... " >>"${OUTTO}" 2>&1 35 | chown -R www-data: ${rutorrent}plugins/$PLUGIN 36 | echo "Edit Plugin Install Complete!" >>"${OUTTO}" 2>&1 37 | 38 | sleep 5 39 | echo >>"${OUTTO}" 2>&1 40 | echo >>"${OUTTO}" 2>&1 41 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 42 | 43 | exit 44 | } 45 | 46 | _installplugin-edit 47 | -------------------------------------------------------------------------------- /packages/plugin/install/installplugin-feeds: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Install feeds plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _installplugin-feeds() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Accessing feeds in the plugin vault ... " >>"${OUTTO}" 2>&1 23 | PLUGINVAULT="/usr/local/bin/quickbox/rutorrent/plugins/" 24 | cd "${rutorrent}plugins" 25 | sleep 5 26 | 27 | echo "Installing feeds plugin ... " >>"${OUTTO}" 2>&1 28 | PLUGIN="feeds" 29 | for i in $PLUGIN; do 30 | cp -R "${PLUGINVAULT}$i" . 31 | done 32 | sleep 5 33 | 34 | echo "Adjusting permissions ... " >>"${OUTTO}" 2>&1 35 | chown -R www-data: ${rutorrent}plugins/$PLUGIN 36 | echo "Feeds Plugin Install Complete!" >>"${OUTTO}" 2>&1 37 | 38 | sleep 5 39 | echo >>"${OUTTO}" 2>&1 40 | echo >>"${OUTTO}" 2>&1 41 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 42 | 43 | exit 44 | } 45 | 46 | _installplugin-feeds 47 | -------------------------------------------------------------------------------- /packages/plugin/install/installplugin-geoip: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Install geoip plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _installplugin-geoip() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Accessing geoip in the plugin vault ... " >>"${OUTTO}" 2>&1 23 | PLUGINVAULT="/usr/local/bin/quickbox/rutorrent/plugins/" 24 | cd "${rutorrent}plugins" 25 | sleep 5 26 | 27 | echo "Installing geoip plugin ... " >>"${OUTTO}" 2>&1 28 | PLUGIN="geoip" 29 | for i in $PLUGIN; do 30 | cp -R "${PLUGINVAULT}$i" . 31 | done 32 | sleep 5 33 | 34 | echo "Adjusting permissions ... " >>"${OUTTO}" 2>&1 35 | chown -R www-data: ${rutorrent}plugins/$PLUGIN 36 | echo "Geoip Plugin Install Complete!" >>"${OUTTO}" 2>&1 37 | 38 | sleep 5 39 | echo >>"${OUTTO}" 2>&1 40 | echo >>"${OUTTO}" 2>&1 41 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 42 | 43 | exit 44 | } 45 | 46 | _installplugin-geoip 47 | -------------------------------------------------------------------------------- /packages/plugin/install/installplugin-ipad: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Install ipad plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _installplugin-ipad() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Accessing ipad in the plugin vault ... " >>"${OUTTO}" 2>&1 23 | PLUGINVAULT="/usr/local/bin/quickbox/rutorrent/plugins/" 24 | cd "${rutorrent}plugins" 25 | sleep 5 26 | 27 | echo "Installing ipad plugin ... " >>"${OUTTO}" 2>&1 28 | PLUGIN="ipad" 29 | for i in $PLUGIN; do 30 | cp -R "${PLUGINVAULT}$i" . 31 | done 32 | sleep 5 33 | 34 | echo "Adjusting permissions ... " >>"${OUTTO}" 2>&1 35 | chown -R www-data: ${rutorrent}plugins/$PLUGIN 36 | echo "Ipad Plugin Install Complete!" >>"${OUTTO}" 2>&1 37 | 38 | sleep 5 39 | echo >>"${OUTTO}" 2>&1 40 | echo >>"${OUTTO}" 2>&1 41 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 42 | 43 | exit 44 | } 45 | 46 | _installplugin-ipad 47 | -------------------------------------------------------------------------------- /packages/plugin/install/installplugin-logoff: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Install logoff plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _installplugin-logoff() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Accessing logoff in the plugin vault ... " >>"${OUTTO}" 2>&1 23 | PLUGINVAULT="/usr/local/bin/quickbox/rutorrent/plugins/" 24 | cd "${rutorrent}plugins" 25 | sleep 5 26 | 27 | echo "Installing logoff plugin ... " >>"${OUTTO}" 2>&1 28 | PLUGIN="logoff" 29 | for i in $PLUGIN; do 30 | cp -R "${PLUGINVAULT}$i" . 31 | done 32 | sleep 5 33 | 34 | echo "Adjusting permissions ... " >>"${OUTTO}" 2>&1 35 | chown -R www-data: ${rutorrent}plugins/$PLUGIN 36 | echo "Logoff Plugin Install Complete!" >>"${OUTTO}" 2>&1 37 | 38 | sleep 5 39 | echo >>"${OUTTO}" 2>&1 40 | echo >>"${OUTTO}" 2>&1 41 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 42 | 43 | exit 44 | } 45 | 46 | _installplugin-logoff 47 | -------------------------------------------------------------------------------- /packages/plugin/install/installplugin-lookat: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Install lookat plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _installplugin-lookat() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Accessing lookat in the plugin vault ... " >>"${OUTTO}" 2>&1 23 | PLUGINVAULT="/usr/local/bin/quickbox/rutorrent/plugins/" 24 | cd "${rutorrent}plugins" 25 | sleep 5 26 | 27 | echo "Installing lookat plugin ... " >>"${OUTTO}" 2>&1 28 | PLUGIN="lookat" 29 | for i in $PLUGIN; do 30 | cp -R "${PLUGINVAULT}$i" . 31 | done 32 | sleep 5 33 | 34 | echo "Adjusting permissions ... " >>"${OUTTO}" 2>&1 35 | chown -R www-data: ${rutorrent}plugins/$PLUGIN 36 | echo "Lookat Plugin Install Complete!" >>"${OUTTO}" 2>&1 37 | 38 | sleep 5 39 | echo >>"${OUTTO}" 2>&1 40 | echo >>"${OUTTO}" 2>&1 41 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 42 | 43 | exit 44 | } 45 | 46 | _installplugin-lookat 47 | -------------------------------------------------------------------------------- /packages/plugin/install/installplugin-mobile: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Install mobile plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _installplugin-mobile() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Accessing mobile in the plugin vault ... " >>"${OUTTO}" 2>&1 23 | PLUGINVAULT="/usr/local/bin/quickbox/rutorrent/plugins/" 24 | cd "${rutorrent}plugins" 25 | sleep 5 26 | 27 | echo "Installing mobile plugin ... " >>"${OUTTO}" 2>&1 28 | PLUGIN="mobile" 29 | for i in $PLUGIN; do 30 | cp -R "${PLUGINVAULT}$i" . 31 | done 32 | sleep 5 33 | 34 | echo "Adjusting permissions ... " >>"${OUTTO}" 2>&1 35 | chown -R www-data: ${rutorrent}plugins/$PLUGIN 36 | echo "Mobile Plugin Install Complete!" >>"${OUTTO}" 2>&1 37 | 38 | sleep 5 39 | echo >>"${OUTTO}" 2>&1 40 | echo >>"${OUTTO}" 2>&1 41 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 42 | 43 | exit 44 | } 45 | 46 | _installplugin-mobile 47 | -------------------------------------------------------------------------------- /packages/plugin/install/installplugin-ratio: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Install ratio plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _installplugin-ratio() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Accessing ratio in the plugin vault ... " >>"${OUTTO}" 2>&1 23 | PLUGINVAULT="/usr/local/bin/quickbox/rutorrent/plugins/" 24 | cd "${rutorrent}plugins" 25 | sleep 5 26 | 27 | echo "Installing ratio plugin ... " >>"${OUTTO}" 2>&1 28 | PLUGIN="ratio" 29 | for i in $PLUGIN; do 30 | cp -R "${PLUGINVAULT}$i" . 31 | done 32 | sleep 5 33 | 34 | echo "Adjusting permissions ... " >>"${OUTTO}" 2>&1 35 | chown -R www-data: ${rutorrent}plugins/$PLUGIN 36 | echo "Ratio Plugin Install Complete!" >>"${OUTTO}" 2>&1 37 | 38 | sleep 5 39 | echo >>"${OUTTO}" 2>&1 40 | echo >>"${OUTTO}" 2>&1 41 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 42 | 43 | exit 44 | } 45 | 46 | _installplugin-ratio 47 | -------------------------------------------------------------------------------- /packages/plugin/install/installplugin-rpc: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Install rpc plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _installplugin-rpc() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Accessing rpc in the plugin vault ... " >>"${OUTTO}" 2>&1 23 | PLUGINVAULT="/usr/local/bin/quickbox/rutorrent/plugins/" 24 | cd "${rutorrent}plugins" 25 | sleep 5 26 | 27 | echo "Installing rpc plugin ... " >>"${OUTTO}" 2>&1 28 | PLUGIN="rpc" 29 | for i in $PLUGIN; do 30 | cp -R "${PLUGINVAULT}$i" . 31 | done 32 | sleep 5 33 | 34 | echo "Adjusting permissions ... " >>"${OUTTO}" 2>&1 35 | chown -R www-data: ${rutorrent}plugins/$PLUGIN 36 | echo "RPC Plugin Install Complete!" >>"${OUTTO}" 2>&1 37 | 38 | sleep 5 39 | echo >>"${OUTTO}" 2>&1 40 | echo >>"${OUTTO}" 2>&1 41 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 42 | 43 | exit 44 | } 45 | 46 | _installplugin-rpc 47 | -------------------------------------------------------------------------------- /packages/plugin/install/installplugin-rss: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Install rss plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _installplugin-rss() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Accessing rss in the plugin vault ... " >>"${OUTTO}" 2>&1 23 | PLUGINVAULT="/usr/local/bin/quickbox/rutorrent/plugins/" 24 | cd "${rutorrent}plugins" 25 | sleep 5 26 | 27 | echo "Installing rss plugin ... " >>"${OUTTO}" 2>&1 28 | PLUGIN="rss" 29 | for i in $PLUGIN; do 30 | cp -R "${PLUGINVAULT}$i" . 31 | done 32 | sleep 5 33 | 34 | echo "Adjusting permissions ... " >>"${OUTTO}" 2>&1 35 | chown -R www-data: ${rutorrent}plugins/$PLUGIN 36 | echo "RSS Plugin Install Complete!" >>"${OUTTO}" 2>&1 37 | 38 | sleep 5 39 | echo >>"${OUTTO}" 2>&1 40 | echo >>"${OUTTO}" 2>&1 41 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 42 | 43 | exit 44 | } 45 | 46 | _installplugin-rss 47 | -------------------------------------------------------------------------------- /packages/plugin/install/installplugin-source: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Install source plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _installplugin-source() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Accessing source in the plugin vault ... " >>"${OUTTO}" 2>&1 23 | PLUGINVAULT="/usr/local/bin/quickbox/rutorrent/plugins/" 24 | cd "${rutorrent}plugins" 25 | sleep 5 26 | 27 | echo "Installing source plugin ... " >>"${OUTTO}" 2>&1 28 | PLUGIN="source" 29 | for i in $PLUGIN; do 30 | cp -R "${PLUGINVAULT}$i" . 31 | done 32 | sleep 5 33 | 34 | echo "Adjusting permissions ... " >>"${OUTTO}" 2>&1 35 | chown -R www-data: ${rutorrent}plugins/$PLUGIN 36 | echo "Source Plugin Install Complete!" >>"${OUTTO}" 2>&1 37 | 38 | sleep 5 39 | echo >>"${OUTTO}" 2>&1 40 | echo >>"${OUTTO}" 2>&1 41 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 42 | 43 | exit 44 | } 45 | 46 | _installplugin-source 47 | -------------------------------------------------------------------------------- /packages/plugin/install/installplugin-stream: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Install stream plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _installplugin-stream() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Accessing stream in the plugin vault ... " >>"${OUTTO}" 2>&1 23 | PLUGINVAULT="/usr/local/bin/quickbox/rutorrent/plugins/" 24 | cd "${rutorrent}plugins" 25 | sleep 5 26 | 27 | echo "Installing stream plugin ... " >>"${OUTTO}" 2>&1 28 | PLUGIN="stream" 29 | for i in $PLUGIN; do 30 | cp -R "${PLUGINVAULT}$i" . 31 | done 32 | sleep 5 33 | 34 | echo "Adjusting permissions ... " >>"${OUTTO}" 2>&1 35 | chown -R www-data: ${rutorrent}plugins/$PLUGIN 36 | echo "Stream Plugin Install Complete!" >>"${OUTTO}" 2>&1 37 | 38 | sleep 5 39 | echo >>"${OUTTO}" 2>&1 40 | echo >>"${OUTTO}" 2>&1 41 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 42 | 43 | exit 44 | } 45 | 46 | _installplugin-stream 47 | -------------------------------------------------------------------------------- /packages/plugin/install/installplugin-theme: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Install theme plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _installplugin-theme() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Accessing theme in the plugin vault ... " >>"${OUTTO}" 2>&1 23 | PLUGINVAULT="/usr/local/bin/quickbox/rutorrent/plugins/" 24 | cd "${rutorrent}plugins" 25 | sleep 5 26 | 27 | echo "Installing theme plugin ... " >>"${OUTTO}" 2>&1 28 | PLUGIN="theme" 29 | for i in $PLUGIN; do 30 | cp -R "${PLUGINVAULT}$i" . 31 | done 32 | sleep 5 33 | 34 | echo "Adjusting permissions ... " >>"${OUTTO}" 2>&1 35 | chown -R www-data: ${rutorrent}plugins/$PLUGIN 36 | echo "Theme Plugin Install Complete!" >>"${OUTTO}" 2>&1 37 | 38 | sleep 5 39 | echo >>"${OUTTO}" 2>&1 40 | echo >>"${OUTTO}" 2>&1 41 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 42 | 43 | exit 44 | } 45 | 46 | _installplugin-theme 47 | -------------------------------------------------------------------------------- /packages/plugin/install/installplugin-trafic: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Install trafic plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _installplugin-trafic() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Accessing trafic in the plugin vault ... " >>"${OUTTO}" 2>&1 23 | PLUGINVAULT="/usr/local/bin/quickbox/rutorrent/plugins/" 24 | cd "${rutorrent}plugins" 25 | sleep 5 26 | 27 | echo "Installing trafic plugin ... " >>"${OUTTO}" 2>&1 28 | PLUGIN="trafic" 29 | for i in $PLUGIN; do 30 | cp -R "${PLUGINVAULT}$i" . 31 | done 32 | sleep 5 33 | 34 | echo "Adjusting permissions ... " >>"${OUTTO}" 2>&1 35 | chown -R www-data: ${rutorrent}plugins/$PLUGIN 36 | echo "Trafic Plugin Install Complete!" >>"${OUTTO}" 2>&1 37 | 38 | sleep 5 39 | echo >>"${OUTTO}" 2>&1 40 | echo >>"${OUTTO}" 2>&1 41 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 42 | 43 | exit 44 | } 45 | 46 | _installplugin-trafic 47 | -------------------------------------------------------------------------------- /packages/plugin/install/installplugin-unpack: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Install unpack plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _installplugin-unpack() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Accessing unpack in the plugin vault ... " >>"${OUTTO}" 2>&1 23 | PLUGINVAULT="/usr/local/bin/quickbox/rutorrent/plugins/" 24 | cd "${rutorrent}plugins" 25 | sleep 5 26 | 27 | echo "Installing unpack plugin ... " >>"${OUTTO}" 2>&1 28 | PLUGIN="unpack" 29 | for i in $PLUGIN; do 30 | cp -R "${PLUGINVAULT}$i" . 31 | done 32 | sleep 5 33 | 34 | echo "Adjusting permissions ... " >>"${OUTTO}" 2>&1 35 | chown -R www-data: ${rutorrent}plugins/$PLUGIN 36 | echo "Unpack Plugin Install Complete!" >>"${OUTTO}" 2>&1 37 | 38 | sleep 5 39 | echo >>"${OUTTO}" 2>&1 40 | echo >>"${OUTTO}" 2>&1 41 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 42 | 43 | exit 44 | } 45 | 46 | _installplugin-unpack 47 | -------------------------------------------------------------------------------- /packages/plugin/install/installplugin-xmpp: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Install xmpp plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _installplugin-xmpp() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Accessing xmpp in the plugin vault ... " >>"${OUTTO}" 2>&1 23 | PLUGINVAULT="/usr/local/bin/quickbox/rutorrent/plugins/" 24 | cd "${rutorrent}plugins" 25 | sleep 5 26 | 27 | echo "Installing xmpp plugin ... " >>"${OUTTO}" 2>&1 28 | PLUGIN="xmpp" 29 | for i in $PLUGIN; do 30 | cp -R "${PLUGINVAULT}$i" . 31 | done 32 | sleep 5 33 | 34 | echo "Adjusting permissions ... " >>"${OUTTO}" 2>&1 35 | chown -R www-data: ${rutorrent}plugins/$PLUGIN 36 | echo "Xmpp Plugin Install Complete!" >>"${OUTTO}" 2>&1 37 | 38 | sleep 5 39 | echo >>"${OUTTO}" 2>&1 40 | echo >>"${OUTTO}" 2>&1 41 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 42 | 43 | exit 44 | } 45 | 46 | _installplugin-xmpp 47 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-_getdir: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove _getdir plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-getdir() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the getdir plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="getdir" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Getdir Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-getdir 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-_noty: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove noty plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-noty() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling _noty & _noty2 plugins ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="_noty _noty2" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "_Noty & _Noty2 Plugins Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-noty 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-_task: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove _task plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-task() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the _task plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="_task" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "_Task Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-task 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-autotools: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove autotools plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-autotools() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the autotools plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="autotools" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Autotools Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-autotools 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-check_port: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove check_port plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-checkport() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the check_port plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="check_port" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Check_port Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-checkport 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-chunks: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove chunks plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-chunks() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the chunks plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="chunks" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Chunks Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-chunks 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-cookies: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove cookies plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-cookies() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the cookies plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="cookies" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Cookies Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-cookies 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-cpuload: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove cpuload plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-cpuload() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the cpuload plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="cpuload" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "CPUload Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-cpuload 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-create: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove create plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-create() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the create plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="create" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Create Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-create 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-data: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove data plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-data() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the data plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="data" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Data Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-data 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-datadir: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove datadir plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-datadir() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the datadir plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="datadir" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Datadir Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-datadir 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-diskspace: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove diskspace plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-diskspace() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the diskspace plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="diskspace" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Diskspace Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-diskspace 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-edit: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove edit plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-edit() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the edit plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="edit" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Edit Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-edit 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-erasedata: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove erasedata plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-erasedata() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the erasedata plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="erasedata" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Erasedata Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-erasedata 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-extratio: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove extratio plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-extratio() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the extratio plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="extratio" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Extratio Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-extratio 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-extsearch: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove extsearch plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-extsearch() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the extsearch plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="extsearch" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Extsearch Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-extsearch 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-feeds: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove feeds plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-feeds() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the feeds plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="feeds" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Feeds Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-feeds 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-filedrop: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove filedrop plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-filedrop() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the filedrop plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="filedrop" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Filedrop Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-filedrop 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-filemanager: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove filemanager plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-filemanager() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the filemanager plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="filemanager" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Filemanager Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-filemanager 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-fileshare: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove fileshare plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-fileshare() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the fileshare plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="fileshare" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Fileshare Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-fileshare 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-fileupload: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove fileupload plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-fileupload() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the fileupload plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="fileupload" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Fileupload Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-fileupload 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-geoip: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove geoip plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-geoip() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the geoip plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="geoip" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Geoip Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-geoip 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-history: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove history plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-history() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the history plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="history" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "History Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-history 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-httprpc: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove httprpc plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-httprpc() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the httprpc plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="httprpc" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "HTTPrpc Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-httprpc 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-ipad: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove ipad plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-ipad() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the ipad plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="ipad" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Ipad Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-ipad 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-loginmgr: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove loginmgr plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-loginmgr() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the loginmgr plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="loginmgr" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Loginmgr Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-loginmgr 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-logoff: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove logoff plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-logoff() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the logoff plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="logoff" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Logoff Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-logoff 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-lookat: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove lookat plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-lookat() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the lookat plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="lookat" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Lookat Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-lookat 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-mediainfo: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove mediainfo plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-mediainfo() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the mediainfo plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="mediainfo" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Mediainfo Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-mediainfo 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-mobile: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove mobile plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-mobile() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the mobile plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="mobile" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Mobile Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-mobile 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-pausewebui: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove pausewebui plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-pausewebui() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the pausewebui plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="pausewebui" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Pausewebui Plugins Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-pausewebui 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-ratio: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove ratio plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-ratio() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the ratio plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="ratio" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Ratio Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-ratio 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-ratiocolor: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove ratiocolor plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-ratiocolor() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the ratiocolor plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="ratiocolor" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Ratiocolor Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-ratiocolor 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-retrackers: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove retrackers plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-retrackers() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the retrackers plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="retrackers" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Retrackers Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-retrackers 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-rpc: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove rpc plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-rpc() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the rpc plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="rpc" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "RPC Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-rpc 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-rss: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove rss plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-rss() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the rss plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="rss" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "RSS Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-rss 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-rssurlrewrite: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove rssurlrewrite plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-rssurlrewrite() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the rssurlrewrite plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="rssurlrewrite" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "RSSurlrewrite Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-rssurlrewrite 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-rutracker_check: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove rutracker_check plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-rutracker_check() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the rutracker_check plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="rutracker_check" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "RUtracker_check Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-rutracker_check 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-scheduler: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove scheduler plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-scheduler() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the scheduler plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="scheduler" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Scheduler Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-scheduler 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-screenshots: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove screenshots plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-screenshots() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the screenshots plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="screenshots" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Screenshots Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-screenshots 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-seedingtime: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove seedingtime plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-seedingtime() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the seedingtime plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="seedingtime" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Seedingtime Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-seedingtime 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-show_peers_like_wtorrent: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove show_peers_like_wtorrent plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-show_peers_like_wtorrent() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the show_peers_like_wtorrent plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="show_peers_like_wtorrent" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Show_peers_like_wtorrent Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-show_peers_like_wtorrent 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-source: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove source plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-source() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the source plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="source" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Source Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-source 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-spectrogram: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove spectrogram plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/quickbox/db/output.log 18 | 19 | function _removeplugin-spectrogram() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the spectrogram plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="spectrogram" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Spectrogram Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-spectrogram 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-stream: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove stream plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-stream() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the stream plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="stream" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Stream Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-stream 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-theme: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove theme plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-theme() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the theme plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="theme" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Theme Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-theme 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-throttle: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove throttle plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-throttle() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the throttle plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="throttle" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Throttle Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-throttle 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-tracklabels: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove tracklabels plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-tracklabels() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the tracklabels plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="tracklabels" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Tracklabels Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-tracklabels 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-trafic: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove trafic plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-trafic() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the trafic plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="trafic" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Trafic Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-trafic 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-unpack: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove unpack plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-unpack() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the unpack plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="unpack" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Unpack Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-unpack 40 | -------------------------------------------------------------------------------- /packages/plugin/remove/removeplugin-xmpp: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Remove xmpp plugin] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # GitHub _ plugins : https://github.com/QuickBox/quickbox_rutorrent-plugins 8 | # LOCAL REPOS 9 | # Local _ packages : /etc/QuickBox/packages 10 | # Local _ plugins : /etc/QuickBox/rtplugins 11 | # Author : QuickBox.IO | JMSolo 12 | # URL : https://quickbox.io 13 | # 14 | # QuickBox Copyright (C) 2017 QuickBox.io 15 | # SPDX-License-Identifier: GPL-3.0-or-later 16 | # 17 | OUTTO=/srv/rutorrent/home/db/output.log 18 | 19 | function _removeplugin-xmpp() { 20 | username=$(whoami) 21 | rutorrent="/srv/rutorrent/" 22 | echo "Uninstalling the xmpp plugin ... " >>"${OUTTO}" 2>&1 23 | PLUGIN="xmpp" 24 | for i in $PLUGIN; do 25 | rm -rf "${rutorrent}plugins/$i" 26 | done 27 | sleep 5 28 | 29 | echo "Xmpp Plugin Uninstall Complete!" >>"${OUTTO}" 2>&1 30 | 31 | sleep 5 32 | echo >>"${OUTTO}" 2>&1 33 | echo >>"${OUTTO}" 2>&1 34 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 35 | 36 | exit 37 | } 38 | 39 | _removeplugin-xmpp 40 | -------------------------------------------------------------------------------- /packages/system/auxiliary/clean_log: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Clean output.log database function] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # LOCAL REPOS 8 | # Local _ packages : /etc/QuickBox/packages 9 | # Author : QuickBox.IO | JMSolo 10 | # URL : https://quickbox.io 11 | # 12 | # QuickBox Copyright (C) 2017 QuickBox.io 13 | # SPDX-License-Identifier: GPL-3.0-or-later 14 | # 15 | 16 | printf "" >/srv/dashboard/db/output.log 17 | -------------------------------------------------------------------------------- /packages/system/auxiliary/clean_mem: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [QuickBox Mem Cache Cleanuup Script] 4 | # 5 | # GITHUB REPOS 6 | # GitHub _ packages : https://github.com/QuickBox/quickbox_packages 7 | # LOCAL REPOS 8 | # Local _ packages : /etc/QuickBox/packages 9 | # Author : QuickBox.IO 10 | # URL : https://quickbox.io 11 | # 12 | # QuickBox Copyright (C) 2017 QuickBox.io 13 | # SPDX-License-Identifier: GPL-3.0-or-later 14 | # 15 | ################################################################################# 16 | OUTTO=/srv/dashboard/db/output.log 17 | 18 | function _cleanmemcache() { 19 | echo "Cleaning system memory cache ... " >>"${OUTTO}" 2>&1 20 | echo 1 >/proc/sys/vm/drop_caches 21 | sleep 5 22 | 23 | echo "System memory cache cleared!" >>"${OUTTO}" 2>&1 24 | sleep 5 25 | 26 | echo >>"${OUTTO}" 2>&1 27 | echo >>"${OUTTO}" 2>&1 28 | echo "Close this dialog box to refresh your browser" >>"${OUTTO}" 2>&1 29 | 30 | exit 31 | } 32 | 33 | _cleanmemcache 34 | -------------------------------------------------------------------------------- /packages/system/auxiliary/deluge.Userpass.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # SPDX-License-Identifier: GPL-3.0-or-later 3 | # 4 | # Deluge password generator 5 | # 6 | # deluge.password.py 7 | # 8 | # 9 | 10 | from __future__ import print_function 11 | import hashlib 12 | import sys 13 | 14 | password = sys.argv[1].encode('utf-8') 15 | salt = sys.argv[2].encode('utf-8') 16 | 17 | s = hashlib.sha1() 18 | s.update(salt) 19 | s.update(password) 20 | 21 | print(s.hexdigest()) 22 | -------------------------------------------------------------------------------- /packages/system/auxiliary/deluge.addHost.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # SPDX-License-Identifier: GPL-3.0-or-later 3 | # 4 | # Deluge hostlist id generator 5 | # 6 | # deluge.addHost.py 7 | # 8 | # 9 | 10 | from __future__ import print_function 11 | from builtins import str 12 | import hashlib 13 | import time 14 | 15 | print(hashlib.sha1(str(time.time()).encode('utf-8')).hexdigest()) 16 | -------------------------------------------------------------------------------- /packages/system/auxiliary/deluge.changeUserpass.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # SPDX-License-Identifier: GPL-3.0-or-later 3 | # Changes the password for Deluge's Web UI 4 | 5 | from __future__ import print_function 6 | from deluge.config import Config 7 | import hashlib 8 | import os.path 9 | import sys 10 | 11 | try: 12 | input = raw_input 13 | except NameError: 14 | pass 15 | 16 | if len(sys.argv) == 2: 17 | deluge_dir = os.path.expanduser(sys.argv[1]) 18 | 19 | if os.path.isdir(deluge_dir): 20 | try: 21 | config = Config("web.conf", config_dir=deluge_dir) 22 | except IOError as e: 23 | print("Can't open web ui config file: ", e) 24 | else: 25 | password = input("Enter new password: ") 26 | s = hashlib.sha1() 27 | s.update(config['pwd_salt']) 28 | s.update(password) 29 | config['pwd_sha1'] = s.hexdigest() 30 | try: 31 | config.save() 32 | except IOError as e: 33 | print("Couldn't save new password: ", e) 34 | else: 35 | print("New password successfully set!") 36 | else: 37 | print("%s is not a directory!" % deluge_dir) 38 | else: 39 | print("Usage: %s " % (os.path.basename(sys.argv[0]))) 40 | -------------------------------------------------------------------------------- /packages/system/auxiliary/set_interface: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Network Interface Input] 4 | # 5 | # GitHub: https://github.com/QuickBox/QuickBox 6 | # Author: QuickBox.IO 7 | # URL: https://quickbox.io 8 | # 9 | # QuickBox Copyright (C) 2017 QuickBox.io 10 | # SPDX-License-Identifier: GPL-3.0-or-later 11 | # 12 | 13 | ADAPT=$(cat /srv/dashboard/db/interface.txt) 14 | 15 | sed -i "s/INETFACE/${ADAPT}/g" /srv/dashboard/inc/config.php 16 | 17 | nginx -s reload >/dev/null 2>&1 18 | /usr/local/bin/quickbox/system/auxiliary/php-fpm-cli -r 'opcache_reset();' 19 | -------------------------------------------------------------------------------- /packages/system/auxiliary/showspace: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # SPDX-License-Identifier: GPL-3.0-or-later 3 | 4 | ###################################################################### 5 | # USAGE: showspace (bytes) 6 | # ABSTRACT: Converts a numeric parameter to a human readable format. 7 | ###################################################################### 8 | function showspace() { # Divides by 2^10 until < 1024 and then append metric suffix 9 | declare -a METRIC=('B' 'KB' 'MB' 'GB' 'TB' 'XB' 'PB') # Array of suffixes 10 | MAGNITUDE=0 # magnitude of 2^10 11 | PRECISION="scale=1" # change this numeric value to inrease decimal precision 12 | UNITS=$(echo $1 | tr -d ',') # numeric arg val (in bytes) to be converted 13 | while [ ${UNITS/.*/} -ge 1024 ]; do # compares integers (b/c no floats in bash) 14 | UNITS=$(echo "$PRECISION; $UNITS/1024" | bc) # floating point math via `bc` 15 | ((MAGNITUDE++)) # increments counter for array pointer 16 | done 17 | echo -n "$UNITS${METRIC[$MAGNITUDE]}" 18 | } 19 | 20 | cd /home/ && du */ -bs | awk '$1 > 500 { print $0 }' | while read LINE; do 21 | SIZE=$(echo "$LINE" | cut -f 1) 22 | HRSIZE=$(showspace "$SIZE") 23 | DIR=$(echo "$LINE" | cut -f 2) 24 | printf "%8s %s\n" "$HRSIZE" "$DIR" 25 | done 26 | -------------------------------------------------------------------------------- /packages/system/lang/langSelect-lang_da: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Set Danish Language function] 4 | # 5 | # QuickLab REPOS 6 | # QuickLab _ packages : https://github.com/QuickBox/quickbox_packages 7 | # LOCAL REPOS 8 | # Local _ packages : /etc/QuickBox/packages 9 | # Author : QuickBox.IO | JMSolo 10 | # URL : https://quickbox.io 11 | # 12 | # QuickBox Copyright (C) 2017 QuickBox.io 13 | # SPDX-License-Identifier: GPL-3.0-or-later 14 | # 15 | 16 | locale='da_DK.UTF-8' 17 | language='lang_da' 18 | 19 | cat >/srv/dashboard/db/locale.php </dev/null 2>&1 29 | /usr/local/bin/quickbox/system/auxiliary/php-fpm-cli -r 'opcache_reset();' 30 | sleep 5 31 | -------------------------------------------------------------------------------- /packages/system/lang/langSelect-lang_de: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Set German Language function] 4 | # 5 | # QuickLab REPOS 6 | # QuickLab _ packages : https://github.com/QuickBox/quickbox_packages 7 | # LOCAL REPOS 8 | # Local _ packages : /etc/QuickBox/packages 9 | # Author : QuickBox.IO | JMSolo 10 | # URL : https://quickbox.io 11 | # 12 | # QuickBox Copyright (C) 2017 QuickBox.io 13 | # SPDX-License-Identifier: GPL-3.0-or-later 14 | # 15 | 16 | locale='de_DE.UTF-8' 17 | language='lang_de' 18 | 19 | cat >/srv/dashboard/db/locale.php </dev/null 2>&1 29 | /usr/local/bin/quickbox/system/auxiliary/php-fpm-cli -r 'opcache_reset();' 30 | sleep 5 31 | -------------------------------------------------------------------------------- /packages/system/lang/langSelect-lang_en: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Set US English Language function] 4 | # 5 | # QuickLab REPOS 6 | # QuickLab _ packages : https://github.com/QuickBox/quickbox_packages 7 | # LOCAL REPOS 8 | # Local _ packages : /etc/QuickBox/packages 9 | # Author : QuickBox.IO | JMSolo 10 | # URL : https://quickbox.io 11 | # 12 | # QuickBox Copyright (C) 2017 QuickBox.io 13 | # SPDX-License-Identifier: GPL-3.0-or-later 14 | # 15 | 16 | locale='en_US.UTF-8' 17 | language='lang_en' 18 | 19 | cat >/srv/dashboard/db/locale.php </dev/null 2>&1 29 | /usr/local/bin/quickbox/system/auxiliary/php-fpm-cli -r 'opcache_reset();' 30 | sleep 5 31 | -------------------------------------------------------------------------------- /packages/system/lang/langSelect-lang_es: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Set Spanish Language function] 4 | # 5 | # QuickLab REPOS 6 | # QuickLab _ packages : https://github.com/QuickBox/quickbox_packages 7 | # LOCAL REPOS 8 | # Local _ packages : /etc/QuickBox/packages 9 | # Author : QuickBox.IO | JMSolo 10 | # URL : https://quickbox.io 11 | # 12 | # QuickBox Copyright (C) 2017 QuickBox.io 13 | # SPDX-License-Identifier: GPL-3.0-or-later 14 | # 15 | 16 | locale='es_ES.UTF-8' 17 | language='lang_es' 18 | 19 | cat >/srv/dashboard/db/locale.php </dev/null 2>&1 29 | /usr/local/bin/quickbox/system/auxiliary/php-fpm-cli -r 'opcache_reset();' 30 | sleep 5 31 | -------------------------------------------------------------------------------- /packages/system/lang/langSelect-lang_fr: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Set French Language function] 4 | # 5 | # QuickLab REPOS 6 | # QuickLab _ packages : https://github.com/QuickBox/quickbox_packages 7 | # LOCAL REPOS 8 | # Local _ packages : /etc/QuickBox/packages 9 | # Author : QuickBox.IO | JMSolo 10 | # URL : https://quickbox.io 11 | # 12 | # QuickBox Copyright (C) 2017 QuickBox.io 13 | # SPDX-License-Identifier: GPL-3.0-or-later 14 | # 15 | 16 | locale='fr_FR.UTF-8' 17 | language='lang_fr' 18 | 19 | cat >/srv/dashboard/db/locale.php </dev/null 2>&1 29 | /usr/local/bin/quickbox/system/auxiliary/php-fpm-cli -r 'opcache_reset();' 30 | sleep 5 31 | -------------------------------------------------------------------------------- /packages/system/lang/langSelect-lang_zh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Set Chinese Language function] 4 | # 5 | # QuickLab REPOS 6 | # QuickLab _ packages : https://github.com/QuickBox/quickbox_packages 7 | # LOCAL REPOS 8 | # Local _ packages : /etc/QuickBox/packages 9 | # Author : QuickBox.IO | JMSolo 10 | # URL : https://quickbox.io 11 | # 12 | # QuickBox Copyright (C) 2017 QuickBox.io 13 | # SPDX-License-Identifier: GPL-3.0-or-later 14 | # 15 | 16 | locale='zh_CN.UTF-8' 17 | language='lang_zh-Hans-CN' 18 | 19 | cat >/srv/dashboard/db/locale.php </dev/null 2>&1 29 | /usr/local/bin/quickbox/system/auxiliary/php-fpm-cli -r 'opcache_reset();' 30 | sleep 5 31 | -------------------------------------------------------------------------------- /packages/system/theme/themeSelect-defaulted: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Set Defaulted Theme function] 4 | # 5 | # QuickLab REPOS 6 | # QuickLab _ packages : https://github.com/QuickBox/QB/packages 7 | # LOCAL REPOS 8 | # Local _ packages : /etc/QuickBox/packages 9 | # Author : QuickBox.IO | JMSolo 10 | # URL : https://quickbox.io 11 | # 12 | # QuickBox Copyright (C) 2017 QuickBox.io 13 | # SPDX-License-Identifier: GPL-3.0-or-later 14 | # 15 | function _updatedashboard() { 16 | \cp -fR ${local_themes}defaulted/skins/* ${dashboard}skins 17 | rm -rf ${dashboard}db/.smoked.lock >/dev/null 2>&1 18 | printf "" >${dashboard}db/.defaulted.lock 19 | service nginx reload >/dev/null 2>&1 20 | /usr/local/bin/quickbox/system/auxiliary/php-fpm-cli -r 'opcache_reset();' 21 | sleep 5 22 | 23 | } 24 | 25 | local_themes=/etc/QuickBox/setup/themes/ 26 | dashboard=/srv/dashboard/ 27 | 28 | _updatedashboard 29 | -------------------------------------------------------------------------------- /packages/system/theme/themeSelect-smoked: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [Quick Box :: Set Defaulted Theme function] 4 | # 5 | # QuickLab REPOS 6 | # QuickLab _ packages : https://github.com/QuickBox/QB/packages 7 | # LOCAL REPOS 8 | # Local _ packages : /etc/QuickBox/packages 9 | # Author : QuickBox.IO | JMSolo 10 | # URL : https://quickbox.io 11 | # 12 | # QuickBox Copyright (C) 2017 QuickBox.io 13 | # SPDX-License-Identifier: GPL-3.0-or-later 14 | # 15 | function _updatedashboard() { 16 | \cp -fR ${local_themes}smoked/skins/* ${dashboard}skins 17 | rm -rf ${dashboard}db/.defaulted.lock >/dev/null 2>&1 18 | printf "" >${dashboard}db/.smoked.lock 19 | service nginx reload >/dev/null 2>&1 20 | /usr/local/bin/quickbox/system/auxiliary/php-fpm-cli -r 'opcache_reset();' 21 | sleep 5 22 | 23 | } 24 | 25 | local_themes=/etc/QuickBox/setup/themes/ 26 | dashboard=/srv/dashboard/ 27 | 28 | _updatedashboard 29 | -------------------------------------------------------------------------------- /phpstan.neon: -------------------------------------------------------------------------------- 1 | parameters: 2 | level: 8 3 | paths: 4 | - setup/dashboard 5 | excludePaths: 6 | - setup/dashboard/node_modules (?) 7 | - setup/dashboard/ws/node_modules (?) 8 | - setup/dashboard/lib/node_modules (?) 9 | treatPhpDocTypesAsCertain: false 10 | -------------------------------------------------------------------------------- /setup/dashboard/.gitignore: -------------------------------------------------------------------------------- 1 | # Windows image file caches 2 | Thumbs.db 3 | ehthumbs.db 4 | 5 | # Folder config file 6 | Desktop.ini 7 | 8 | # Recycle Bin used on file shares 9 | $RECYCLE.BIN/ 10 | 11 | # Windows Installer files 12 | *.cab 13 | *.msi 14 | *.msm 15 | *.msp 16 | 17 | # Windows shortcuts 18 | *.lnk 19 | 20 | # ========================= 21 | # Operating System Files 22 | # ========================= 23 | 24 | # OSX 25 | # ========================= 26 | 27 | .DS_Store 28 | .AppleDouble 29 | .LSOverride 30 | 31 | # Thumbnails 32 | ._* 33 | 34 | # Files that might appear in the root of a volume 35 | .DocumentRevisions-V100 36 | .fseventsd 37 | .Spotlight-V100 38 | .TemporaryItems 39 | .Trashes 40 | .VolumeIcon.icns 41 | 42 | # Directories potentially created on remote AFP share 43 | .AppleDB 44 | .AppleDesktop 45 | Network Trash Folder 46 | Temporary Items 47 | .apdisk 48 | -------------------------------------------------------------------------------- /setup/dashboard/README.md: -------------------------------------------------------------------------------- 1 | # QuickBox Lite dashboard 2 | 3 | This is a modified version of QuickBox CE dashboard. Most of the features are preserved: such as Package management center, service controller, network status chart... 4 | 5 | The Realtime CPU/Network Graph are removed. Data refresh rate is slightly reduced to save computing resources. You can install Netdata to get more System information instead. 6 | 7 | -------------------------------------------------------------------------------- /setup/dashboard/custom/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore 5 | #!custom.menu.php 6 | #!custom.css 7 | #!url.override.php 8 | -------------------------------------------------------------------------------- /setup/dashboard/db/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore 5 | !branding-l.php 6 | !branding-m.php 7 | #!domain.list 8 | !.smoked.lock 9 | #!interface.txt 10 | !locale.php 11 | -------------------------------------------------------------------------------- /setup/dashboard/db/branding-l.php: -------------------------------------------------------------------------------- 1 | 4 | 5 | QuickBox Seedbox 6 | -------------------------------------------------------------------------------- /setup/dashboard/db/branding-m.php: -------------------------------------------------------------------------------- 1 | 6 | 18 | -------------------------------------------------------------------------------- /setup/dashboard/db/locale.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | #222222 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /setup/dashboard/img/favicon/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amefs/quickbox-lite/5d7b811466076e730cc9d57999f59ea49a440b3e/setup/dashboard/img/favicon/favicon-16x16.png -------------------------------------------------------------------------------- /setup/dashboard/img/favicon/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amefs/quickbox-lite/5d7b811466076e730cc9d57999f59ea49a440b3e/setup/dashboard/img/favicon/favicon-32x32.png -------------------------------------------------------------------------------- /setup/dashboard/img/favicon/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amefs/quickbox-lite/5d7b811466076e730cc9d57999f59ea49a440b3e/setup/dashboard/img/favicon/favicon.ico -------------------------------------------------------------------------------- /setup/dashboard/img/favicon/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "QuickBox", 3 | "icons": [ 4 | { 5 | "src": "/android-chrome-192x192.png", 6 | "sizes": "192x192", 7 | "type": "image/png" 8 | }, 9 | { 10 | "src": "/android-chrome-512x512.png", 11 | "sizes": "512x512", 12 | "type": "image/png" 13 | } 14 | ], 15 | "theme_color": "#ffffff", 16 | "background_color": "#ffffff", 17 | "display": "standalone" 18 | } -------------------------------------------------------------------------------- /setup/dashboard/img/favicon/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amefs/quickbox-lite/5d7b811466076e730cc9d57999f59ea49a440b3e/setup/dashboard/img/favicon/mstile-150x150.png -------------------------------------------------------------------------------- /setup/dashboard/img/favicon/safari-pinned-tab.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | Created by potrace 1.11, written by Peter Selinger 2001-2013 9 | 10 | 12 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /setup/dashboard/img/logo-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amefs/quickbox-lite/5d7b811466076e730cc9d57999f59ea49a440b3e/setup/dashboard/img/logo-dark.png -------------------------------------------------------------------------------- /setup/dashboard/img/logo-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amefs/quickbox-lite/5d7b811466076e730cc9d57999f59ea49a440b3e/setup/dashboard/img/logo-light.png -------------------------------------------------------------------------------- /setup/dashboard/img/themes/opt_defaulted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amefs/quickbox-lite/5d7b811466076e730cc9d57999f59ea49a440b3e/setup/dashboard/img/themes/opt_defaulted.png -------------------------------------------------------------------------------- /setup/dashboard/img/themes/opt_smoked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amefs/quickbox-lite/5d7b811466076e730cc9d57999f59ea49a440b3e/setup/dashboard/img/themes/opt_smoked.png -------------------------------------------------------------------------------- /setup/dashboard/inc/config.php: -------------------------------------------------------------------------------- 1 | 'QuickBox Lite', 16 | 'author' => 'Everyone that contributes to the open QuickBox project!', 17 | 'robots' => 'noindex, nofollow', 18 | 'title' => 'Quickbox Dashboard', 19 | 'description' => 'QuickBox is an open-source seedbox project that is developed and maintained by anyone who so choses to provide time and energy.', 20 | 'active_page' => basename($_SERVER['PHP_SELF']), 21 | ]; 22 | $username = getMaster(); 23 | $iface_list = ['INETFACE']; 24 | $branch = 'master'; 25 | 26 | if (file_exists('/install/.developer.lock')) { 27 | $branch = 'development'; 28 | if (file_exists('/install/.debug.lock')) { 29 | $branch_info = @file('/install/.debug.lock'); 30 | if ($branch_info !== false) { 31 | $branch = trim($branch_info[0]); 32 | } 33 | } 34 | } 35 | 36 | if (!isset($locale)) { 37 | $locale = 'UTF8'; 38 | } 39 | setlocale(\LC_CTYPE, $locale, 'UTF-8', 'en_US.UTF-8', 'en_US.UTF8'); 40 | setlocale(\LC_COLLATE, $locale, 'UTF-8', 'en_US.UTF-8', 'en_US.UTF8'); 41 | -------------------------------------------------------------------------------- /setup/dashboard/inc/info.bw_page.php: -------------------------------------------------------------------------------- 1 | 't', 'title' => 'Top 10 days'], 7 | ['key' => 'h', 'title' => 'Recent hours'], 8 | ['key' => 'd', 'title' => 'Last 30 days'], 9 | ['key' => 'm', 'title' => 'Last 12 months'], 10 | ]; 11 | -------------------------------------------------------------------------------- /setup/dashboard/inc/info.lang.php: -------------------------------------------------------------------------------- 1 | 'lang_zh', 'title' => 'Chinese', 'locale' => 'zh_CN.UTF-8'], 7 | ['file' => 'lang_da', 'title' => 'Danish', 'locale' => 'da_DK.UTF-8'], 8 | ['file' => 'lang_en', 'title' => 'English', 'locale' => 'en_US.UTF-8'], 9 | ['file' => 'lang_fr', 'title' => 'French', 'locale' => 'fr_FR.UTF-8'], 10 | ['file' => 'lang_de', 'title' => 'German', 'locale' => 'de_DE.UTF-8'], 11 | ['file' => 'lang_es', 'title' => 'Spanish', 'locale' => 'es_ES.UTF-8'], 12 | ]; 13 | -------------------------------------------------------------------------------- /setup/dashboard/inc/info.theme.php: -------------------------------------------------------------------------------- 1 | 'defaulted', 'title' => 'Defaulted'], 7 | ['file' => 'smoked', 'title' => 'Smoked'], 8 | ]; 9 | 10 | if (count($_GET) > 0) { 11 | foreach ($themes as $theme) { 12 | if (isset($_GET['themeSelect-'.$theme['file']])) { 13 | header('Location: /'); 14 | shell_exec('sudo /usr/local/bin/quickbox/system/theme/themeSelect-'.$theme['file']); 15 | break; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /setup/dashboard/inc/localize.php: -------------------------------------------------------------------------------- 1 | $values 25 | * 26 | * @return string 27 | */ 28 | function T($message, $values = null) { 29 | global $L; 30 | if (isset($L[$message])) { 31 | $value = $L[$message]; 32 | if (is_array($values)) { 33 | foreach ($values as $key => $val) { 34 | $value = str_replace("{{{$key}}}", $val, $value); 35 | } 36 | } 37 | 38 | return $value; 39 | } else { 40 | return $message; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /setup/dashboard/inc/panel.end.php: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /setup/dashboard/lang/flag_lang_da.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amefs/quickbox-lite/5d7b811466076e730cc9d57999f59ea49a440b3e/setup/dashboard/lang/flag_lang_da.png -------------------------------------------------------------------------------- /setup/dashboard/lang/flag_lang_de.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amefs/quickbox-lite/5d7b811466076e730cc9d57999f59ea49a440b3e/setup/dashboard/lang/flag_lang_de.png -------------------------------------------------------------------------------- /setup/dashboard/lang/flag_lang_en.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amefs/quickbox-lite/5d7b811466076e730cc9d57999f59ea49a440b3e/setup/dashboard/lang/flag_lang_en.png -------------------------------------------------------------------------------- /setup/dashboard/lang/flag_lang_es.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amefs/quickbox-lite/5d7b811466076e730cc9d57999f59ea49a440b3e/setup/dashboard/lang/flag_lang_es.png -------------------------------------------------------------------------------- /setup/dashboard/lang/flag_lang_fr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amefs/quickbox-lite/5d7b811466076e730cc9d57999f59ea49a440b3e/setup/dashboard/lang/flag_lang_fr.png -------------------------------------------------------------------------------- /setup/dashboard/lang/flag_lang_zh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amefs/quickbox-lite/5d7b811466076e730cc9d57999f59ea49a440b3e/setup/dashboard/lang/flag_lang_zh.png -------------------------------------------------------------------------------- /setup/dashboard/lib/datatables/images/sort_asc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amefs/quickbox-lite/5d7b811466076e730cc9d57999f59ea49a440b3e/setup/dashboard/lib/datatables/images/sort_asc.png -------------------------------------------------------------------------------- /setup/dashboard/lib/datatables/images/sort_asc_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amefs/quickbox-lite/5d7b811466076e730cc9d57999f59ea49a440b3e/setup/dashboard/lib/datatables/images/sort_asc_disabled.png -------------------------------------------------------------------------------- /setup/dashboard/lib/datatables/images/sort_both.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amefs/quickbox-lite/5d7b811466076e730cc9d57999f59ea49a440b3e/setup/dashboard/lib/datatables/images/sort_both.png -------------------------------------------------------------------------------- /setup/dashboard/lib/datatables/images/sort_desc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amefs/quickbox-lite/5d7b811466076e730cc9d57999f59ea49a440b3e/setup/dashboard/lib/datatables/images/sort_desc.png -------------------------------------------------------------------------------- /setup/dashboard/lib/datatables/images/sort_desc_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amefs/quickbox-lite/5d7b811466076e730cc9d57999f59ea49a440b3e/setup/dashboard/lib/datatables/images/sort_desc_disabled.png -------------------------------------------------------------------------------- /setup/dashboard/lib/font-awesome/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amefs/quickbox-lite/5d7b811466076e730cc9d57999f59ea49a440b3e/setup/dashboard/lib/font-awesome/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /setup/dashboard/lib/font-awesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amefs/quickbox-lite/5d7b811466076e730cc9d57999f59ea49a440b3e/setup/dashboard/lib/font-awesome/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /setup/dashboard/lib/font-awesome/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amefs/quickbox-lite/5d7b811466076e730cc9d57999f59ea49a440b3e/setup/dashboard/lib/font-awesome/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /setup/dashboard/lib/font-awesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amefs/quickbox-lite/5d7b811466076e730cc9d57999f59ea49a440b3e/setup/dashboard/lib/font-awesome/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /setup/dashboard/lib/font-awesome/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amefs/quickbox-lite/5d7b811466076e730cc9d57999f59ea49a440b3e/setup/dashboard/lib/font-awesome/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /setup/dashboard/lib/jquery-gritter/images/gritter-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amefs/quickbox-lite/5d7b811466076e730cc9d57999f59ea49a440b3e/setup/dashboard/lib/jquery-gritter/images/gritter-light.png -------------------------------------------------------------------------------- /setup/dashboard/lib/jquery-gritter/images/gritter-long.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amefs/quickbox-lite/5d7b811466076e730cc9d57999f59ea49a440b3e/setup/dashboard/lib/jquery-gritter/images/gritter-long.png -------------------------------------------------------------------------------- /setup/dashboard/lib/jquery-gritter/images/gritter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amefs/quickbox-lite/5d7b811466076e730cc9d57999f59ea49a440b3e/setup/dashboard/lib/jquery-gritter/images/gritter.png -------------------------------------------------------------------------------- /setup/dashboard/lib/jquery-gritter/images/ie-spacer.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amefs/quickbox-lite/5d7b811466076e730cc9d57999f59ea49a440b3e/setup/dashboard/lib/jquery-gritter/images/ie-spacer.gif -------------------------------------------------------------------------------- /setup/dashboard/lib/jquery-ui-touch-punch/jquery.ui.touch-punch.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI Touch Punch 0.2.3 3 | * 4 | * Copyright 2011–2014, Dave Furfero 5 | * Dual licensed under the MIT or GPL Version 2 licenses. 6 | * 7 | * Depends: 8 | * jquery.ui.widget.js 9 | * jquery.ui.mouse.js 10 | */ 11 | !function(a){function f(a,b){if(!(a.originalEvent.touches.length>1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery); -------------------------------------------------------------------------------- /setup/dashboard/lib/jquery-ui/images/ui-icons_444444_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amefs/quickbox-lite/5d7b811466076e730cc9d57999f59ea49a440b3e/setup/dashboard/lib/jquery-ui/images/ui-icons_444444_256x240.png -------------------------------------------------------------------------------- /setup/dashboard/lib/jquery-ui/images/ui-icons_555555_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amefs/quickbox-lite/5d7b811466076e730cc9d57999f59ea49a440b3e/setup/dashboard/lib/jquery-ui/images/ui-icons_555555_256x240.png -------------------------------------------------------------------------------- /setup/dashboard/lib/jquery-ui/images/ui-icons_777620_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amefs/quickbox-lite/5d7b811466076e730cc9d57999f59ea49a440b3e/setup/dashboard/lib/jquery-ui/images/ui-icons_777620_256x240.png -------------------------------------------------------------------------------- /setup/dashboard/lib/jquery-ui/images/ui-icons_777777_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amefs/quickbox-lite/5d7b811466076e730cc9d57999f59ea49a440b3e/setup/dashboard/lib/jquery-ui/images/ui-icons_777777_256x240.png -------------------------------------------------------------------------------- /setup/dashboard/lib/jquery-ui/images/ui-icons_cc0000_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amefs/quickbox-lite/5d7b811466076e730cc9d57999f59ea49a440b3e/setup/dashboard/lib/jquery-ui/images/ui-icons_cc0000_256x240.png -------------------------------------------------------------------------------- /setup/dashboard/lib/jquery-ui/images/ui-icons_ffffff_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amefs/quickbox-lite/5d7b811466076e730cc9d57999f59ea49a440b3e/setup/dashboard/lib/jquery-ui/images/ui-icons_ffffff_256x240.png -------------------------------------------------------------------------------- /setup/dashboard/lib/visibility/visibility.core.js: -------------------------------------------------------------------------------- 1 | !function(i){var n=-1,e={onVisible:function(i){var n=e.isSupported();if(!n||!e.hidden())return i(),n;var t=e.change(function(n,d){e.hidden()||(e.unbind(t),i())});return t},change:function(i){if(!e.isSupported())return!1;var t=n+=1;return e._callbacks[t]=i,e._listen(),t},unbind:function(i){delete e._callbacks[i]},afterPrerendering:function(i){var n=e.isSupported();if(!n||"prerender"!=e.state())return i(),n;var t=e.change(function(n,d){"prerender"!=d&&(e.unbind(t),i())});return t},hidden:function(){return!(!e._doc.hidden&&!e._doc.webkitHidden)},state:function(){return e._doc.visibilityState||e._doc.webkitVisibilityState||"visible"},isSupported:function(){return void 0!==e._doc.hidden||void 0!==e._doc.webkitHidden},_doc:document||{},_callbacks:{},_change:function(i){var n=e.state();for(var t in e._callbacks)e._callbacks[t].call(e._doc,i,n)},_listen:function(){if(!e._init){var i="visibilitychange";e._doc.webkitVisibilityState&&(i="webkit"+i);var n=function(){e._change.apply(e,arguments)};e._doc.addEventListener?e._doc.addEventListener(i,n):e._doc.attachEvent(i,n),e._init=!0}}};"undefined"!=typeof module&&module.exports?module.exports=e:i.Visibility=e}(this); 2 | -------------------------------------------------------------------------------- /setup/dashboard/lib/visibility/visibility.fallback.js: -------------------------------------------------------------------------------- 1 | !function(i){if(!i.visibilityState&&!i.webkitVisibilityState){i.hidden=!1,i.visibilityState="visible";var t=null,e=function(){i.createEvent?(t||(t=i.createEvent("HTMLEvents")).initEvent("visibilitychange",!0,!0),i.dispatchEvent(t)):"object"==typeof Visibility&&Visibility._change.call(Visibility,{})},n=function(){i.hidden=!1,i.visibilityState="visible",e()},a=function(){i.hidden=!0,i.visibilityState="hidden",e()};i.addEventListener?(window.addEventListener("focus",n,!0),window.addEventListener("blur",a,!0)):(i.attachEvent("onfocusin",n),i.attachEvent("onfocusout",a))}}(document); 2 | -------------------------------------------------------------------------------- /setup/dashboard/lib/visibility/visibility.timers.js: -------------------------------------------------------------------------------- 1 | !function(e){var i=-1,t=function(t){return t.every=function(e,n,r){t._time(),r||(r=n,n=null);var d=i+=1;return t._timers[d]={visible:e,hidden:n,callback:r},t._run(d,!1),t.isSupported()&&t._listen(),d},t.stop=function(e){return!!t._timers[e]&&(t._stop(e),delete t._timers[e],!0)},t._timers={},t._time=function(){t._timed||(t._timed=!0,t._wasHidden=t.hidden(),t.change(function(){t._stopRun(),t._wasHidden=t.hidden()}))},t._run=function(i,n){var r,d=t._timers[i];if(t.hidden()){if(null===d.hidden)return;r=d.hidden}else r=d.visible;var l=function(){d.last=new Date,d.callback.call(e)};if(n){var s=new Date-d.last;r>s?d.delay=setTimeout(function(){d.id=setInterval(l,r),l()},r-s):(d.id=setInterval(l,r),l())}else d.id=setInterval(l,r)},t._stop=function(e){var i=t._timers[e];clearInterval(i.id),clearTimeout(i.delay),delete i.id,delete i.delay},t._stopRun=function(e){var i=t.hidden(),n=t._wasHidden;if(i&&!n||!i&&n)for(var r in t._timers)t._stop(r),t._run(r,!i)},t};"undefined"!=typeof module&&module.exports?module.exports=t(require("./visibility.core")):t(e.Visibility||require("./visibility.core"))}(window); 2 | -------------------------------------------------------------------------------- /setup/dashboard/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "quickbox-dashboard", 3 | "version": "1.0.0", 4 | "scripts": { 5 | "lint": "eslint ./inc ./js", 6 | "audit": "npm audit --registry=https://registry.npmjs.org", 7 | "upgrade": "npx npm-check -u" 8 | }, 9 | "author": "quickbox-lite", 10 | "license": "GPL-3.0-or-later", 11 | "dependencies": { 12 | "animate.css": "^4.1.1", 13 | "ansi_up": "^5.2.1", 14 | "bootbox": "^5.5.3", 15 | "bootstrap": "3.4.1", 16 | "datatables": "^1.10.18", 17 | "font-awesome": "^4.7.0", 18 | "gritter": "^1.7.4", 19 | "jquery": "^3.7.1", 20 | "jquery-toggles": "^4.0.0", 21 | "jquery-ui": "^1.14.1", 22 | "jquery-ui-touch-punch": "^0.2.3", 23 | "lazysizes": "^5.3.2", 24 | "lobipanel": "^1.0.0", 25 | "perfect-scrollbar": "^1.5.6", 26 | "select2": "^4.0.13", 27 | "socket.io-client": "^4.8.1", 28 | "visibilityjs": "^2.0.2" 29 | }, 30 | "devDependencies": { 31 | "@eslint/eslintrc": "^3.2.0", 32 | "@eslint/js": "^9.17.0", 33 | "eslint": "^9.17.0", 34 | "eslint-plugin-import": "^2.31.0", 35 | "eslint-plugin-n": "^17.15.0", 36 | "eslint-plugin-promise": "^7.2.1", 37 | "globals": "^15.13.0" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /setup/dashboard/skins/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore 5 | #!bootstrap.min.css 6 | #!filters.svg 7 | #!lobipanel.css 8 | #!quick.css 9 | #!resources.svg 10 | -------------------------------------------------------------------------------- /setup/dashboard/widgets/service_status.php: -------------------------------------------------------------------------------- 1 | $info) { 19 | if ($k === $service) { 20 | $process = $info['process']; 21 | $username = $info['username']; 22 | $status = processExists($process, $username); 23 | $matched = true; 24 | break; 25 | } 26 | } 27 | if ($matched) { 28 | break; 29 | } 30 | } 31 | 32 | $val = $status ? 'running' : 'disabled'; 33 | ?> 34 | 35 | 36 | -------------------------------------------------------------------------------- /setup/dashboard/ws/config/download.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "rTorrent", 4 | "ref": "rtorrent", 5 | "url": "/$username$.rtorrent.downloads" 6 | }, { 7 | "name": "Deluge", 8 | "ref": "deluge", 9 | "url": "/$username$.deluge.downloads" 10 | }, { 11 | "name": "Transmission", 12 | "ref": "transmission", 13 | "url": "/$username$.transmission.downloads" 14 | }, { 15 | "name": "qBittorrent", 16 | "ref": "qbittorrent", 17 | "url": "/$username$.qbittorrent.downloads" 18 | }, { 19 | "name": "OpenVPN Config", 20 | "ref": null, 21 | "lockfile": "/home/$username$/openvpn/$username$.zip", 22 | "url": "/$username$/ovpn.zip" 23 | } 24 | ] 25 | -------------------------------------------------------------------------------- /setup/dashboard/ws/dist/server.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /** 2 | * @license React 3 | * react-dom-server-legacy.node.production.min.js 4 | * 5 | * Copyright (c) Facebook, Inc. and its affiliates. 6 | * 7 | * This source code is licensed under the MIT license found in the 8 | * LICENSE file in the root directory of this source tree. 9 | */ 10 | 11 | /** 12 | * @license React 13 | * react-dom-server.node.production.min.js 14 | * 15 | * Copyright (c) Facebook, Inc. and its affiliates. 16 | * 17 | * This source code is licensed under the MIT license found in the 18 | * LICENSE file in the root directory of this source tree. 19 | */ 20 | 21 | /** 22 | * @license React 23 | * react.production.min.js 24 | * 25 | * Copyright (c) Facebook, Inc. and its affiliates. 26 | * 27 | * This source code is licensed under the MIT license found in the 28 | * LICENSE file in the root directory of this source tree. 29 | */ 30 | -------------------------------------------------------------------------------- /setup/dashboard/ws/lang: -------------------------------------------------------------------------------- 1 | ../lang -------------------------------------------------------------------------------- /setup/dashboard/ws/quickbox-ws.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=QuickBox Status Update WebSocket Interface 3 | Requires=network.target 4 | After=network.target 5 | 6 | [Service] 7 | Type=simple 8 | ExecStart=/usr/bin/node /srv/dashboard/ws/dist/server.js 9 | ExecReload=/bin/kill -HUP $MAINPID 10 | KillMode=process 11 | Restart=on-failure 12 | RestartSec=42s 13 | 14 | [Install] 15 | WantedBy=multi-user.target 16 | -------------------------------------------------------------------------------- /setup/dashboard/ws/src/constant.ts: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-3.0-or-later 2 | import { existsSync, readFileSync } from "fs"; 3 | 4 | // eslint-disable-next-line @typescript-eslint/no-extraneous-class 5 | export default class Constant { 6 | public static EVENT_CONNECTION = "connection"; 7 | public static EVENT_DISCONNECT = "disconnect"; 8 | public static EVENT_MESSAGE = "message"; 9 | public static EVENT_EXEC = "exec"; 10 | public static EVENT_I18N = "i18n"; 11 | public static TEMPLATE_OPERATION = "$operation$"; 12 | public static TEMPLATE_TARGET = "$target$"; 13 | public static TEMPLATE_USERNAME = "$username$"; 14 | } 15 | 16 | function getUsername() { 17 | let username = ""; 18 | try { 19 | const masterConfigPath = "/srv/dashboard/db/master.txt"; 20 | if (!existsSync(masterConfigPath)) { 21 | console.error("Quickbox-Lite user info not found"); 22 | } else { 23 | const content = readFileSync(masterConfigPath, { encoding: "utf8" }); 24 | username = content.split("\n")[0].trim(); 25 | } 26 | } catch (err) { 27 | console.error("Failed to read Quickbox-Lite user info", err); 28 | } 29 | return username; 30 | } 31 | 32 | export const username = getUsername(); 33 | -------------------------------------------------------------------------------- /setup/dashboard/ws/src/handler/i18n.ts: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-3.0-or-later 2 | 3 | import Constant from "../constant"; 4 | import { Socket } from "socket.io"; 5 | import i18n from "../i18n"; 6 | 7 | export default (client: Socket, next?: (err?: Error) => void) => { 8 | client.on(Constant.EVENT_I18N, (locale) => { 9 | console.log(`${client.id} set lang as ${locale}`); 10 | i18n.locale = locale as string; 11 | }); 12 | if (next) { 13 | next(); 14 | } 15 | }; 16 | -------------------------------------------------------------------------------- /setup/dashboard/ws/src/handler/log.ts: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-3.0-or-later 2 | 3 | import Constant from "../constant"; 4 | import { Socket } from "socket.io"; 5 | 6 | 7 | export default (client: Socket, next?: (err?: Error) => void) => { 8 | const clientIp = client.handshake.headers["x-forwarded-for"] || client.handshake.address; 9 | console.log(`${client.id} connect from ${clientIp}`); 10 | client.on(Constant.EVENT_DISCONNECT, () => { console.log(`${client.id} disconnect`); }); 11 | if (next) { 12 | next(); 13 | } 14 | }; 15 | -------------------------------------------------------------------------------- /setup/dashboard/ws/src/i18n.ts: -------------------------------------------------------------------------------- 1 | import { I18n } from "./libs/i18n"; 2 | 3 | import da from "../lang/lang_da.json"; 4 | import de from "../lang/lang_de.json"; 5 | import en from "../lang/lang_en.json"; 6 | import es from "../lang/lang_es.json"; 7 | import fr from "../lang/lang_fr.json"; 8 | import zh from "../lang/lang_zh-Hans-CN.json"; 9 | 10 | const i18n = new I18n({ 11 | da, 12 | de, 13 | en, 14 | es, 15 | fr, 16 | zh, 17 | }); 18 | 19 | export default i18n; 20 | -------------------------------------------------------------------------------- /setup/dashboard/ws/src/libs/i18n/LICENSE.md: -------------------------------------------------------------------------------- 1 | # The MIT License (MIT) 2 | 3 | Copyright (c) 2021 Nando Vieira 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /setup/dashboard/ws/src/libs/i18n/helpers/camelCaseKeys.ts: -------------------------------------------------------------------------------- 1 | import { camelCase } from "lodash"; 2 | 3 | import { Dict } from "../typing"; 4 | 5 | /** 6 | * Shallow transform an object's keys from snake case (that's assumption) to 7 | * camel case. 8 | * 9 | * @private 10 | * 11 | * @param {object} target The object that will be transformed. 12 | * 13 | * @returns {object} A new transformed object. 14 | */ 15 | export function camelCaseKeys(target: unknown): T { 16 | if (!target) { 17 | return {} as T; 18 | } 19 | 20 | return Object.keys(target as Dict).reduce((buffer, key) => { 21 | (buffer as Dict)[camelCase(key)] = (target as Dict)[key]; 22 | return buffer; 23 | }, {} as T); 24 | } 25 | -------------------------------------------------------------------------------- /setup/dashboard/ws/src/libs/i18n/helpers/expandRoundMode.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable @typescript-eslint/prefer-literal-enum-member */ 2 | import BigNumber from "bignumber.js"; 3 | import { RoundingMode } from "../typing"; 4 | 5 | enum RoundingModeMap { 6 | "up" = BigNumber.ROUND_UP, 7 | "down" = BigNumber.ROUND_DOWN, 8 | "truncate" = BigNumber.ROUND_DOWN, 9 | "halfUp" = BigNumber.ROUND_HALF_UP, 10 | "default" = BigNumber.ROUND_HALF_UP, 11 | "halfDown" = BigNumber.ROUND_HALF_DOWN, 12 | "halfEven" = BigNumber.ROUND_HALF_EVEN, 13 | "banker" = BigNumber.ROUND_HALF_EVEN, 14 | "ceiling" = BigNumber.ROUND_CEIL, 15 | "ceil" = BigNumber.ROUND_CEIL, 16 | "floor" = BigNumber.ROUND_FLOOR, 17 | } 18 | 19 | /** 20 | * @param {RoundingMode} roundMode BigNumber's rounding mode shortcut. 21 | * 22 | * @return {BigNumber.RoundingMode} The related BigNumber rounding mode. 23 | */ 24 | export function expandRoundMode( 25 | roundMode: RoundingMode, 26 | ): BigNumber.RoundingMode { 27 | return (RoundingModeMap[roundMode] ?? 28 | RoundingModeMap.default) as BigNumber.RoundingMode; 29 | } 30 | -------------------------------------------------------------------------------- /setup/dashboard/ws/src/libs/i18n/helpers/getFullScope.ts: -------------------------------------------------------------------------------- 1 | import { Dict, Scope } from "../typing"; 2 | import { I18n } from "../I18n"; 3 | 4 | /** 5 | * Get the full scope. 6 | * 7 | * @private 8 | * 9 | * @param {I18n} i18n The I18n instance. 10 | * @param {Scope} scope The scope object. 11 | * @param {object} options Options containing the base scope to be prepended. 12 | * @returns {string} The full scope joined by the default separator. 13 | */ 14 | export function getFullScope(i18n: I18n, scope: Scope, options: Dict): string { 15 | let result = ""; 16 | 17 | // Deal with string scopes. 18 | if (scope instanceof String || typeof scope === "string") { 19 | result = scope as string; 20 | } 21 | 22 | // Deal with the scope as an array. 23 | if (scope instanceof Array) { 24 | result = (scope as string[]).join(i18n.defaultSeparator); 25 | } 26 | 27 | // Deal with the scope option provided through the second argument. 28 | // 29 | // I18n.t('hello', {scope: 'greetings'}); 30 | // 31 | if (options.scope) { 32 | result = [options.scope, result].join(i18n.defaultSeparator); 33 | } 34 | 35 | return result; 36 | } 37 | -------------------------------------------------------------------------------- /setup/dashboard/ws/src/libs/i18n/helpers/index.ts: -------------------------------------------------------------------------------- 1 | export { camelCaseKeys } from "./camelCaseKeys"; 2 | export { createTranslationOptions } from "./createTranslationOptions"; 3 | export { expandRoundMode } from "./expandRoundMode"; 4 | export { formatNumber } from "./formatNumber"; 5 | export { getFullScope } from "./getFullScope"; 6 | export { inferType } from "./inferType"; 7 | export { interpolate } from "./interpolate"; 8 | export { isSet } from "./isSet"; 9 | export { lookup } from "./lookup"; 10 | export { numberToDelimited } from "./numberToDelimited"; 11 | export { numberToHuman } from "./numberToHuman"; 12 | export { numberToHumanSize } from "./numberToHumanSize"; 13 | export { parseDate } from "./parseDate"; 14 | export { pluralize } from "./pluralize"; 15 | export { roundNumber } from "./roundNumber"; 16 | export { strftime } from "./strftime"; 17 | export { timeAgoInWords } from "./timeAgoInWords"; 18 | -------------------------------------------------------------------------------- /setup/dashboard/ws/src/libs/i18n/helpers/inferType.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Return object type. 3 | * 4 | * @private 5 | * 6 | * @param {unknown} instance The object that will be inspected. 7 | * 8 | * @returns {string} The object's type. 9 | */ 10 | export function inferType(instance: unknown): string { 11 | if (instance === null) { 12 | return "null"; 13 | } 14 | 15 | const type = typeof instance; 16 | 17 | if (type !== "object") { 18 | return type; 19 | } 20 | 21 | // eslint-disable-next-line @typescript-eslint/no-explicit-any 22 | return (instance as any)?.constructor?.name?.toLowerCase() || "object"; 23 | } 24 | -------------------------------------------------------------------------------- /setup/dashboard/ws/src/libs/i18n/helpers/isSet.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Check if value is different than undefined and null. 3 | * 4 | * @private 5 | * 6 | * @param {unknown} value The inspecting value. 7 | * 8 | * @returns {boolean} Whether the value is set or not. 9 | */ 10 | export function isSet(value: unknown): boolean { 11 | return value !== undefined && value !== null; 12 | } 13 | -------------------------------------------------------------------------------- /setup/dashboard/ws/src/libs/i18n/helpers/numberToDelimited.ts: -------------------------------------------------------------------------------- 1 | import BigNumber from "bignumber.js"; 2 | 3 | import { Numeric, NumberToDelimitedOptions } from "../typing"; 4 | 5 | /** 6 | * Formats a number with grouped thousands using delimiter (e.g., 12,324). 7 | * 8 | * @private 9 | * 10 | * @param {Numeric} input The number that will be formatted. 11 | * 12 | * @param {NumberToDelimitedOptions} options The formatting options. 13 | * 14 | * @return {string} The formatted number. 15 | */ 16 | export function numberToDelimited( 17 | input: Numeric, 18 | options: NumberToDelimitedOptions, 19 | ): string { 20 | const numeric = new BigNumber(input); 21 | 22 | if (!numeric.isFinite()) { 23 | return input.toString(); 24 | } 25 | 26 | if (!options.delimiterPattern.global) { 27 | throw new Error( 28 | `options.delimiterPattern must be a global regular expression; received ${options.delimiterPattern}`, 29 | ); 30 | } 31 | 32 | // eslint-disable-next-line prefer-const 33 | let [left, right] = numeric.toString().split("."); 34 | 35 | left = left.replace( 36 | options.delimiterPattern, 37 | (digitToDelimiter) => `${digitToDelimiter}${options.delimiter}`, 38 | ); 39 | 40 | return [left, right].filter(Boolean).join(options.separator); 41 | } 42 | -------------------------------------------------------------------------------- /setup/dashboard/ws/src/libs/i18n/index.ts: -------------------------------------------------------------------------------- 1 | export { I18n } from "./I18n"; 2 | export { Locales } from "./Locales"; 3 | export { MissingTranslation } from "./MissingTranslation"; 4 | export * from "./typing"; 5 | -------------------------------------------------------------------------------- /setup/dashboard/ws/src/libs/i18n/pluralize/ru.ts: -------------------------------------------------------------------------------- 1 | import { I18n } from "../I18n"; 2 | import { Pluralizer } from "../typing"; 3 | 4 | export const ru: Pluralizer = (_i18n: I18n, count: number) => { 5 | const mod10 = count % 10; 6 | const mod100 = count % 100; 7 | let key; 8 | 9 | const one = mod10 === 1 && mod100 !== 11; 10 | const few = [2, 3, 4].includes(mod10) && ![12, 13, 14].includes(mod100); 11 | const many = 12 | mod10 === 0 || 13 | [5, 6, 7, 8, 9].includes(mod10) || 14 | [11, 12, 13, 14].includes(mod100); 15 | 16 | if (one) { 17 | key = "one"; 18 | } else if (few) { 19 | key = "few"; 20 | } else if (many) { 21 | key = "many"; 22 | } else { 23 | key = "other"; 24 | } 25 | 26 | return [key]; 27 | }; 28 | -------------------------------------------------------------------------------- /setup/dashboard/ws/src/libs/i18n/pluralize/westSlavic.ts: -------------------------------------------------------------------------------- 1 | import { I18n } from "../I18n"; 2 | import { Pluralizer } from "../typing"; 3 | 4 | export const westSlavic: Pluralizer = (_i18n: I18n, count: number) => { 5 | const few = [2, 3, 4]; 6 | let key; 7 | 8 | if (count === 1) { 9 | key = "one"; 10 | } else if (few.includes(count)) { 11 | key = "few"; 12 | } else { 13 | key = "other"; 14 | } 15 | 16 | return [key]; 17 | }; 18 | -------------------------------------------------------------------------------- /setup/dashboard/ws/src/server.tsx: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-3.0-or-later 2 | 3 | import express from "express"; 4 | import http from "http"; 5 | import { Server as socketio } from "socket.io"; 6 | import ws from "ws"; 7 | import React from "react"; 8 | import ReactDOMServer from "react-dom/server"; 9 | 10 | import logHandler from "./handler/log"; 11 | import messageHandler from "./handler/message"; 12 | import execHandler from "./handler/exec"; 13 | import i18nHandler from "./handler/i18n"; 14 | import i18n from "./i18n"; 15 | 16 | const app = express(); 17 | app.set("trust proxy", true); 18 | 19 | const server = http.createServer(app); 20 | const io = new socketio(server, { wsEngine: ws.Server }); 21 | 22 | io.use(logHandler); 23 | io.use(messageHandler); 24 | io.use(execHandler); 25 | io.use(i18nHandler); 26 | 27 | app.get("/", (req, res) => { 28 | res.send(ReactDOMServer.renderToString( 29 | 30 | QuickBox Websocket 31 | 32 | 33 |
Request from {req.ip}
34 | 35 | )); 36 | }); 37 | 38 | app.get("/set", (req, res) => { 39 | const lang = req.query.lang; 40 | if (typeof lang === "string") { 41 | i18n.locale = lang; 42 | } else { 43 | i18n.locale = "en"; 44 | } 45 | res.send(i18n.locale); 46 | }); 47 | 48 | server.listen(8575, "127.0.0.1", () => { 49 | console.log("Quickbox-ws running..."); 50 | }); 51 | -------------------------------------------------------------------------------- /setup/dashboard/ws/src/utils/index.ts: -------------------------------------------------------------------------------- 1 | import si from "systeminformation"; 2 | 3 | export async function processExists(processName: string, username: string) { 4 | const processes = await si.processes(); 5 | const idx = processes.list.findIndex((process) => process.name === processName && process.user === username); 6 | return idx !== -1; 7 | } 8 | 9 | export function formatSize(length: number) { 10 | const value = isNaN(length) ? 0 : length; 11 | const suffixList = ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"]; 12 | const idx = Math.min(Math.max(Math.floor(Math.log2(value) / 10), 0), suffixList.length - 1); 13 | return (value / Math.pow(2, idx * 10)).toFixed(idx > 0 ? 2 : 0).toString() + " " + suffixList[idx]; 14 | } 15 | 16 | export function formatSpeed(length: number, decimals = 3, startWith = 0) { 17 | if (length < 1e-5) { 18 | return "0 bps"; 19 | } 20 | const siPrefix = ["bps", "Kbps", "Mbps", "Gbps", "Tbps", "Pbps", "Ebps", "Zbps", "Ybps"]; 21 | const base = 1024; 22 | const index = Math.floor(Math.log(length) / Math.log(base)); 23 | 24 | return (length / Math.pow(base, index)).toFixed(decimals) + " " + siPrefix[index + startWith]; 25 | } 26 | -------------------------------------------------------------------------------- /setup/dashboard/ws/src/watchedConfig.ts: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-3.0-or-later 2 | 3 | import { readFileSync, watchFile } from "fs"; 4 | 5 | export class WatchedConfig { 6 | private path: string; 7 | private encoding: BufferEncoding; 8 | 9 | private timestamp: Date; 10 | private config: T; 11 | 12 | public constructor(path: string, encoding: BufferEncoding = "utf-8") { 13 | this.path = path; 14 | this.encoding = encoding; 15 | this.timestamp = new Date(); 16 | this.config = {} as T; 17 | 18 | this.loadConfig(); 19 | this.watch(); 20 | } 21 | 22 | public get Value(): T { 23 | return this.config; 24 | } 25 | 26 | private loadConfig() { 27 | this.config = JSON.parse(readFileSync(this.path).toString(this.encoding)) as T; 28 | } 29 | 30 | private watch() { 31 | watchFile(this.path, (curr, prev) => { 32 | if (curr.mtime > prev.mtime) { 33 | this.timestamp = curr.mtime; 34 | this.loadConfig(); 35 | console.log(`Config reloaded at ${new Date()}`); 36 | } 37 | }); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /setup/dashboard/ws/src/widgets/load.ts: -------------------------------------------------------------------------------- 1 | import os from "os"; 2 | import si from "systeminformation"; 3 | export const widgetsLoad = async () => { 4 | const loadavg = os.loadavg(); 5 | const processes = await si.processes(); 6 | return `${loadavg.map(l=>l.toFixed(2)).join(" ")} ${processes.all}`; 7 | }; 8 | -------------------------------------------------------------------------------- /setup/dashboard/ws/src/widgets/net_status.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable camelcase */ 2 | import si from "systeminformation"; 3 | 4 | async function enuminterface() { 5 | const interfaces = await si.networkInterfaces(); 6 | if (Array.isArray(interfaces)) { 7 | return interfaces.filter(i => i.operstate === "up").map(i => i.iface); 8 | } 9 | return [interfaces.iface]; 10 | } 11 | 12 | export const netStatus = async () => { 13 | const interfaces = await enuminterface(); 14 | const ret: Record = {}; 15 | for(const iface of interfaces) { 16 | const stats = await si.networkStats(iface); 17 | if (stats.length > 0) { 18 | ret[iface] = { 19 | rx_bytes: stats[0].rx_bytes, 20 | tx_bytes: stats[0].tx_bytes, 21 | }; 22 | } 23 | } 24 | return { 25 | net: ret, 26 | ts: Date.now() / 1000.0, 27 | }; 28 | }; 29 | -------------------------------------------------------------------------------- /setup/dashboard/ws/src/widgets/service_status.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import ReactDOMServer from "react-dom/server"; 3 | 4 | import { packageList } from "../info"; 5 | import { processExists } from "../utils"; 6 | 7 | const packageWithService = packageList.filter((pkg) => pkg.services !== undefined); 8 | 9 | export async function serviceStatus(service: string | undefined) { 10 | let status = false; 11 | 12 | for (const pkg of packageWithService) { 13 | if (service === undefined) { 14 | break; 15 | } 16 | let matched = false; 17 | if (pkg.services === undefined) { 18 | continue; 19 | } 20 | for (const [k, info] of Object.entries(pkg.services)) { 21 | if (k === service) { 22 | const process = info.process; 23 | const username = info.username; 24 | status = await processExists(process, username); 25 | matched = true; 26 | break; 27 | } 28 | } 29 | if (matched) { 30 | break; 31 | } 32 | } 33 | 34 | const val = status ? "running" : "disabled"; 35 | 36 | return ReactDOMServer.renderToString( 37 | 38 | 39 | 40 | 41 | ); 42 | } 43 | -------------------------------------------------------------------------------- /setup/dashboard/ws/src/widgets/up.tsx: -------------------------------------------------------------------------------- 1 | import si from "systeminformation"; 2 | import React from "react"; 3 | import ReactDOMServer from "react-dom/server"; 4 | import i18n from "../i18n"; 5 | 6 | export const upTime = () => { 7 | const uptime = si.time().uptime; 8 | const days = Math.floor(uptime / 60 / 60 / 24); 9 | const hours = Math.floor(uptime / 60 / 60 % 24); 10 | const mins = Math.floor(uptime / 60 % 60); 11 | 12 | return ReactDOMServer.renderToString( 13 | 14 | {days}{ i18n.t("DAYS_L") } 15 | {hours}{ i18n.t("HOURS_L") } 16 | {mins}{ i18n.t("MINUTES_L") } 17 | ); 18 | }; 19 | -------------------------------------------------------------------------------- /setup/dashboard/ws/tests/client.js: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-3.0-or-later 2 | 3 | import { io } from "socket.io-client"; 4 | 5 | const socket = io("http://127.0.0.1:8575", { path: "/socket.io" }); 6 | let connectionError = false; 7 | let idx = 0; 8 | socket.on("open", () => { 9 | console.log(`[ws] connected with id: '${socket.id}'.`); 10 | }); 11 | 12 | socket.on("pong", () => { 13 | console.log(`[ws${++idx}] pong`); 14 | }); 15 | socket.on("message", (data) => { 16 | console.log(`[ws${++idx}] message:`, data); 17 | }); 18 | socket.on("exec", (data) => { 19 | console.log(`[ws${++idx}] exec:`, data); 20 | }); 21 | socket.on("error", (err) => { 22 | console.log(`[ws${++idx}] err:`, err); 23 | connectionError = true; 24 | }); 25 | 26 | (function wait() { 27 | if (!connectionError) { 28 | setTimeout(wait, 1000); 29 | } 30 | socket.emit("exec", "ping::"); 31 | })(); 32 | console.log("client is running"); 33 | -------------------------------------------------------------------------------- /setup/dashboard/ws/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES6", 4 | "module": "commonjs", 5 | "moduleResolution": "node", 6 | "isolatedModules": false, 7 | "allowJs": true, 8 | "sourceMap": true, 9 | "jsx": "react", 10 | "experimentalDecorators": true, 11 | "emitDecoratorMetadata": true, 12 | "declaration": false, 13 | "strict": true, 14 | "noImplicitAny": true, 15 | "noImplicitUseStrict": false, 16 | "removeComments": true, 17 | "noLib": false, 18 | "preserveConstEnums": true, 19 | "esModuleInterop": true, 20 | "allowSyntheticDefaultImports": true, 21 | "resolveJsonModule": true, 22 | "types": [ 23 | "node" 24 | ] 25 | }, 26 | "ts-node": { 27 | "esm": true, 28 | "experimentalSpecifierResolution": "node" 29 | }, 30 | "include": [ 31 | "src/**/*.ts", 32 | "src/**/*.tsx", 33 | "tests/**/*.ts", 34 | "lang/*.json" 35 | ], 36 | "exclude": [ 37 | "node_modules", 38 | "dist" 39 | ] 40 | } 41 | -------------------------------------------------------------------------------- /setup/scripts/deluge.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [QuickBox Lite Deluge Installer (Main)] 4 | # 5 | # GitHub: https://github.com/amefs/quickbox-lite 6 | # Author: Amefs 7 | # Current version: v0.1.0 8 | # URL: 9 | # Original Repo: https://github.com/QuickBox/QB 10 | # Credits to: QuickBox.io 11 | # 12 | # SPDX-License-Identifier: GPL-3.0-or-later 13 | # 14 | ################################################################################# 15 | logpath=$1 16 | extra_arg=${*:2} 17 | bash /usr/local/bin/quickbox/package/install/installpackage-deluge -l $logpath $extra_arg -------------------------------------------------------------------------------- /setup/scripts/ffmpeg.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [QuickBox Lite FFmpeg Installer (Main)] 4 | # 5 | # GitHub: https://github.com/amefs/quickbox-lite 6 | # Author: Amefs 7 | # Current version: v0.1.0 8 | # URL: 9 | # Original Repo: https://github.com/QuickBox/QB 10 | # Credits to: QuickBox.io 11 | # 12 | # SPDX-License-Identifier: GPL-3.0-or-later 13 | # 14 | ################################################################################# 15 | logpath=$1 16 | bash /usr/local/bin/quickbox/package/install/installpackage-ffmpeg -l $logpath -------------------------------------------------------------------------------- /setup/scripts/filebrowser.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [QuickBox Lite File Browser Installer (Main)] 4 | # 5 | # GitHub: https://github.com/amefs/quickbox-lite 6 | # Author: Amefs 7 | # Current version: v0.1.0 8 | # URL: 9 | # Original Repo: https://github.com/QuickBox/QB 10 | # Credits to: QuickBox.io 11 | # 12 | # SPDX-License-Identifier: GPL-3.0-or-later 13 | # 14 | ################################################################################# 15 | logpath=$1 16 | bash /usr/local/bin/quickbox/package/install/installpackage-filebrowser -l $logpath -------------------------------------------------------------------------------- /setup/scripts/lecert.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [QuickBox Lite Lets Encrypt Installer (Main)] 4 | # 5 | # GitHub: https://github.com/amefs/quickbox-lite 6 | # Author: Amefs 7 | # Current version: v0.1.0 8 | # URL: 9 | # Original Repo: https://github.com/QuickBox/QB 10 | # Credits to: QuickBox.io 11 | # 12 | # SPDX-License-Identifier: GPL-3.0-or-later 13 | # 14 | ################################################################################# 15 | logpath=$1 16 | extra_arg=$2 17 | bash /usr/local/bin/quickbox/package/install/installpackage-lecert -l $logpath -d $extra_arg -------------------------------------------------------------------------------- /setup/scripts/linuxrar.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [QuickBox Lite Linux RAR Installer (Main)] 4 | # 5 | # GitHub: https://github.com/amefs/quickbox-lite 6 | # Author: Amefs 7 | # Current version: v0.1.0 8 | # URL: 9 | # Original Repo: https://github.com/QuickBox/QB 10 | # Credits to: QuickBox.io 11 | # 12 | # SPDX-License-Identifier: GPL-3.0-or-later 13 | # 14 | ################################################################################# 15 | logpath=$1 16 | bash /usr/local/bin/quickbox/package/install/installpackage-linuxrar -l $logpath -------------------------------------------------------------------------------- /setup/scripts/mktorrent.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [QuickBox Lite mktorrent Installer (Main)] 4 | # 5 | # GitHub: https://github.com/amefs/quickbox-lite 6 | # Author: Amefs 7 | # Current version: v0.1.0 8 | # URL: 9 | # Original Repo: https://github.com/QuickBox/QB 10 | # Credits to: QuickBox.io 11 | # 12 | # SPDX-License-Identifier: GPL-3.0-or-later 13 | # 14 | ################################################################################# 15 | logpath=$1 16 | bash /usr/local/bin/quickbox/package/install/installpackage-mktorrent -l $logpath -------------------------------------------------------------------------------- /setup/scripts/qbittorrent.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [QuickBox Lite qBittorrent Installer (Main)] 4 | # 5 | # GitHub: https://github.com/amefs/quickbox-lite 6 | # Author: Amefs 7 | # Current version: v0.1.0 8 | # URL: 9 | # Original Repo: https://github.com/QuickBox/QB 10 | # Credits to: QuickBox.io 11 | # 12 | # SPDX-License-Identifier: GPL-3.0-or-later 13 | # 14 | ################################################################################# 15 | logpath=$1 16 | extra_arg=${*:2} 17 | bash /usr/local/bin/quickbox/package/install/installpackage-qbittorrent -l $logpath $extra_arg -------------------------------------------------------------------------------- /setup/scripts/rtorrent.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [QuickBox Lite rTorrent Installer (Main)] 4 | # 5 | # GitHub: https://github.com/amefs/quickbox-lite 6 | # Author: Amefs 7 | # Current version: v0.1.0 8 | # URL: 9 | # Original Repo: https://github.com/QuickBox/QB 10 | # Credits to: QuickBox.io 11 | # 12 | # SPDX-License-Identifier: GPL-3.0-or-later 13 | # 14 | ################################################################################# 15 | logpath=$1 16 | gui=$2 17 | extra_arg=${*:3} 18 | bash /usr/local/bin/quickbox/package/install/installpackage-rtorrent -l $logpath $extra_arg 19 | sleep 5 20 | bash /usr/local/bin/quickbox/package/install/installpackage-$gui -l $logpath -------------------------------------------------------------------------------- /setup/scripts/transmission.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [QuickBox Lite Transmission Installer (Main)] 4 | # 5 | # GitHub: https://github.com/amefs/quickbox-lite 6 | # Author: Amefs 7 | # Current version: v0.1.0 8 | # URL: 9 | # Original Repo: https://github.com/QuickBox/QB 10 | # Credits to: QuickBox.io 11 | # 12 | # SPDX-License-Identifier: GPL-3.0-or-later 13 | # 14 | ################################################################################# 15 | logpath=$1 16 | extra_arg=${*:2} 17 | bash /usr/local/bin/quickbox/package/install/installpackage-transmission -l $logpath $extra_arg -------------------------------------------------------------------------------- /setup/templates/lshell/lshell.conf.template: -------------------------------------------------------------------------------- 1 | [global] 2 | logpath : /var/log/lshell/ 3 | loglevel : 2 4 | 5 | [default] 6 | allowed : ['cd','cp','-d','-dmS','git','irssi','ll','ls','-m','mkdir','mv','nano','pwd','-R','rm','rtorrent','rsync','-S','scp','screen','tar','unrar','unzip','nano','wget','rar','unrar'] 7 | forbidden : [';', '&', '|','`','>','<', '$(', '${','sudo','vi','vim','./'] 8 | warning_counter : 2 9 | aliases : {'ls':'ls --color=auto','ll':'ls -l'} 10 | intro : "Welcome To Your QuickBox Lite Shell\nType '?' to get the list of allowed commands" 11 | home_path : '/home/%u' 12 | env_path : ':/usr/local/bin:/usr/sbin' 13 | allowed_cmd_path: ['/home/'] 14 | scp : 1 15 | sftp : 0 16 | overssh : ['ls','rsync','scp'] 17 | -------------------------------------------------------------------------------- /setup/templates/motd/01-custom: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # [QuickBox Lite motd] 4 | # 5 | # GitHub: https://github.com/amefs/quickbox-lite 6 | # Author: Amefs 7 | # Current version: v1.5.11 8 | # URL: 9 | # Original Repo: https://github.com/QuickBox/QB 10 | # Credits to: QuickBox.io 11 | # 12 | # SPDX-License-Identifier: GPL-3.0-or-later 13 | # 14 | ################################################################################# 15 | QUICKBOX_VERSION=v1.5.11 16 | PUBLICIP=$(ip addr show | grep 'inet ' | grep -v 127.0.0.1 | awk '{print $2}' | cut -d/ -f1 | head -n 1) 17 | printf "Welcome to QuickBox Lite %s" "${QUICKBOX_VERSION}" 18 | printf "\n" 19 | if [[ -f /install/domain.info ]]; then 20 | printf " * Dashboard: https://%s\n" "$(cat /install/domain.info)" 21 | else 22 | printf " * Dashboard: https://%s\n" "${PUBLICIP}" 23 | fi 24 | printf " * Documentation: https://www.ptbox.dev\n" 25 | printf " * Support: https://github.com/amefs/quickbox-lite/issues\n" 26 | printf "\n" 27 | [ -x /usr/bin/screenfetch ] && /usr/bin/screenfetch -a /etc/QuickBox/packages/system/auxiliary/quickbox-logo 28 | printf "\n" 29 | if [ -f /var/run/reboot-required ]; then 30 | printf "*** System restart required ***\n" 31 | fi 32 | -------------------------------------------------------------------------------- /setup/templates/nginx/default.template: -------------------------------------------------------------------------------- 1 | server { 2 | listen 80 default_server; 3 | listen [::]:80 default_server; 4 | server_name _; 5 | 6 | location /.well-known { 7 | alias /srv/.well-known; 8 | allow all; 9 | default_type "text/plain"; 10 | autoindex on; 11 | } 12 | 13 | location / { 14 | return 301 https://\$host\$request_uri; 15 | } 16 | } 17 | 18 | # SSL configuration 19 | server { 20 | listen 443 ssl http2 default_server; 21 | listen [::]:443 ssl http2 default_server; 22 | server_name _; 23 | ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem; 24 | ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key; 25 | include snippets/ssl-params.conf; 26 | client_max_body_size 40M; 27 | server_tokens off; 28 | root /srv/; 29 | 30 | index index.html index.php index.htm; 31 | 32 | # resolve multi-redirect 33 | if ($request_uri ~ "^[^?]*?//") { 34 | rewrite "^" $scheme://$host$uri permanent; 35 | } 36 | 37 | location ~ \.php$ 38 | { 39 | fastcgi_read_timeout 240; 40 | fastcgi_pass unix:/run/php/php7.4-fpm.sock; 41 | include snippets/fastcgi-php.conf; 42 | fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 43 | } 44 | include /etc/nginx/apps/*.conf; 45 | 46 | location ~ /\.ht { 47 | deny all; 48 | } 49 | 50 | location /fancyindex { 51 | 52 | } 53 | } -------------------------------------------------------------------------------- /setup/templates/nginx/fancyindex.conf.template: -------------------------------------------------------------------------------- 1 | fancyindex on; 2 | fancyindex_localtime on; 3 | fancyindex_exact_size off; 4 | fancyindex_header "/fancyindex/header.html"; 5 | fancyindex_footer "/fancyindex/footer.html"; 6 | #fancyindex_ignore "examplefile.html"; # Ignored files will not show up in the directory listing, but will still be public. 7 | #fancyindex_ignore "Nginx-Fancyindex-Theme"; # Making sure folder where files are don't show up in the listing. 8 | fancyindex_name_length 255; # Maximum file name length in bytes, change as you like. -------------------------------------------------------------------------------- /setup/templates/nginx/openssl.cnf.template: -------------------------------------------------------------------------------- 1 | [ req ] 2 | prompt = no 3 | distinguished_name = req_distinguished_name 4 | [ req_distinguished_name ] 5 | C = US 6 | ST = Some State 7 | L = LOCALLY 8 | O = SELF 9 | OU = SELF 10 | CN = SELF 11 | emailAddress = private@example.com 12 | -------------------------------------------------------------------------------- /setup/templates/nginx/proxy.conf.template: -------------------------------------------------------------------------------- 1 | client_max_body_size 32m; 2 | client_body_buffer_size 128k; 3 | 4 | #Timeout if the real server is dead 5 | proxy_next_upstream error timeout invalid_header http_500 http_502 http_503; 6 | 7 | # Advanced Proxy Config 8 | send_timeout 5m; 9 | proxy_read_timeout 240; 10 | proxy_send_timeout 240; 11 | proxy_connect_timeout 240; 12 | 13 | # Basic Proxy Config 14 | proxy_set_header Host \$host; 15 | proxy_set_header X-Real-IP \$remote_addr; 16 | proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; 17 | proxy_set_header X-Forwarded-Proto https; 18 | #proxy_redirect http:// \$scheme://; 19 | proxy_http_version 1.1; 20 | proxy_set_header Connection ""; 21 | proxy_cache_bypass \$cookie_session; 22 | proxy_no_cache \$cookie_session; 23 | proxy_buffers 32 4k; -------------------------------------------------------------------------------- /setup/templates/nginx/ssl-params.conf.template: -------------------------------------------------------------------------------- 1 | ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 2 | ssl_prefer_server_ciphers on; 3 | ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH"; 4 | ssl_ecdh_curve secp384r1; 5 | ssl_session_cache shared:SSL:10m; 6 | ssl_session_tickets off; 7 | ssl_stapling on; 8 | ssl_stapling_verify on; 9 | resolver 127.0.0.1 valid=300s; 10 | resolver_timeout 5s; 11 | # Disable preloading HSTS for now. You can use the commented out header line that includes 12 | # the "preload" directive if you understand the implications. 13 | #add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"; 14 | 15 | #add_header Strict-Transport-Security "max-age=63072000; includeSubdomains"; 16 | #add_header X-Frame-Options DENY; 17 | add_header X-Frame-Options SAMEORIGIN; 18 | add_header X-Content-Type-Options nosniff; 19 | 20 | ssl_dhparam /etc/nginx/ssl/dhparam.pem; -------------------------------------------------------------------------------- /setup/templates/openssl.cnf.template: -------------------------------------------------------------------------------- 1 | [ req ] 2 | prompt = no 3 | distinguished_name = req_distinguished_name 4 | [ req_distinguished_name ] 5 | C = US 6 | ST = Some State 7 | L = LOCALLY 8 | O = SELF 9 | OU = SELF 10 | CN = SELF 11 | emailAddress = private@example.com 12 | -------------------------------------------------------------------------------- /setup/templates/skel/.bash_logout: -------------------------------------------------------------------------------- 1 | # ~/.bash_logout: executed by bash(1) when login shell exits. 2 | 3 | # when leaving the console clear the screen to increase privacy 4 | 5 | if [ "$SHLVL" = 1 ]; then 6 | [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q 7 | fi 8 | -------------------------------------------------------------------------------- /setup/templates/skel/.profile: -------------------------------------------------------------------------------- 1 | # ~/.profile: executed by the command interpreter for login shells. 2 | # This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login 3 | # exists. 4 | # see /usr/share/doc/bash/examples/startup-files for examples. 5 | # the files are located in the bash-doc package. 6 | 7 | # the default umask is set in /etc/profile; for setting the umask 8 | # for ssh logins, install and configure the libpam-umask package. 9 | #umask 022 10 | 11 | # if running bash 12 | if [ -n "$BASH_VERSION" ]; then 13 | # include .bashrc if it exists 14 | if [ -f "$HOME/.bashrc" ]; then 15 | . "$HOME/.bashrc" 16 | fi 17 | fi 18 | 19 | # set PATH so it includes user's private bin if it exists 20 | if [ -d "$HOME/bin" ] ; then 21 | PATH="$HOME/bin:$PATH" 22 | fi 23 | 24 | PATH=$PATH:/bin/su:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin/quickbox/system:/usr/bin:/usr/local/bin/quickbox/system/auxiliary:/usr/bin:/usr/local/bin/quickbox/system/theme:/usr/local/bin/quickbox/package:/usr/local/bin/quickbox/package/install:/usr/local/bin/quickbox/package/remove:/usr/local/bin/quickbox/package/update:/usr/local/bin/quickbox/plugins:/usr/local/bin/quickbox/plugins/install:/usr/local/bin/quickbox/plugins/remove: -------------------------------------------------------------------------------- /setup/templates/source.list/debian.new.template: -------------------------------------------------------------------------------- 1 | #------------------------------------------------------------------------------# 2 | # OFFICIAL DEBIAN REPOS # 3 | #------------------------------------------------------------------------------# 4 | 5 | ###### Debian Update Repos 6 | deb http://ftp.COUNTRY.debian.org/debian/ RELEASE main contrib non-free 7 | #deb-src http://ftp.COUNTRY.debian.org/debian/ RELEASE main contrib non-free 8 | deb http://deb.debian.org/debian-security/ RELEASE-security main contrib non-free 9 | #deb-src http://deb.debian.org/debian-security/ RELEASE-security main contrib non-free 10 | deb http://ftp.COUNTRY.debian.org/debian/ RELEASE-updates main contrib non-free 11 | #deb-src http://ftp.COUNTRY.debian.org/debian/ RELEASE-updates main contrib non-free 12 | #deb http://ftp.COUNTRY.debian.org/debian RELEASE-backports main contrib non-free 13 | #deb-src http://ftp.COUNTRY.debian.org/debian RELEASE-backports main contrib non-free 14 | -------------------------------------------------------------------------------- /setup/templates/source.list/debian.new.tuna.template: -------------------------------------------------------------------------------- 1 | #------------------------------------------------------------------------------# 2 | # OFFICIAL DEBIAN REPOS # 3 | #------------------------------------------------------------------------------# 4 | 5 | ###### Debian Update Repos 6 | deb https://mirrors.tuna.tsinghua.edu.cn/debian/ RELEASE main contrib non-free 7 | #deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ RELEASE main contrib non-free 8 | deb http://deb.debian.org/debian-security/ RELEASE-security main contrib non-free 9 | #deb-src http://deb.debian.org/debian-security/ RELEASE-security main contrib non-free 10 | deb https://mirrors.tuna.tsinghua.edu.cn/debian/ RELEASE-updates main contrib non-free 11 | #deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ RELEASE-updates main contrib non-free 12 | #deb https://mirrors.tuna.tsinghua.edu.cn/debian/ RELEASE-backports main contrib non-free 13 | #deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ RELEASE-backports main contrib non-free 14 | -------------------------------------------------------------------------------- /setup/templates/source.list/debian.template: -------------------------------------------------------------------------------- 1 | #------------------------------------------------------------------------------# 2 | # OFFICIAL DEBIAN REPOS # 3 | #------------------------------------------------------------------------------# 4 | 5 | ###### Debian Update Repos 6 | deb http://ftp.COUNTRY.debian.org/debian/ RELEASE main contrib non-free 7 | #deb-src http://ftp.COUNTRY.debian.org/debian/ RELEASE main contrib non-free 8 | deb http://security.debian.org/ RELEASE/updates main contrib non-free 9 | #deb-src http://security.debian.org/ RELEASE/updates main contrib non-free 10 | deb http://ftp.COUNTRY.debian.org/debian/ RELEASE-updates main contrib non-free 11 | #deb-src http://ftp.COUNTRY.debian.org/debian/ RELEASE-updates main contrib non-free 12 | #deb http://ftp.COUNTRY.debian.org/debian RELEASE-backports main contrib non-free 13 | #deb-src http://ftp.COUNTRY.debian.org/debian RELEASE-backports main contrib non-free 14 | -------------------------------------------------------------------------------- /setup/templates/source.list/debian.tuna.template: -------------------------------------------------------------------------------- 1 | #------------------------------------------------------------------------------# 2 | # OFFICIAL DEBIAN REPOS # 3 | #------------------------------------------------------------------------------# 4 | 5 | ###### Debian Update Repos 6 | deb https://mirrors.tuna.tsinghua.edu.cn/debian/ RELEASE main contrib non-free 7 | #deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ RELEASE main contrib non-free 8 | deb http://security.debian.org/ RELEASE/updates main contrib non-free 9 | #deb-src http://security.debian.org/ RELEASE/updates main contrib non-free 10 | deb https://mirrors.tuna.tsinghua.edu.cn/debian/ RELEASE-updates main contrib non-free 11 | #deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ RELEASE-updates main contrib non-free 12 | #deb https://mirrors.tuna.tsinghua.edu.cn/debian/ RELEASE-backports main contrib non-free 13 | #deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ RELEASE-backports main contrib non-free 14 | -------------------------------------------------------------------------------- /setup/templates/source.list/ubuntu.template: -------------------------------------------------------------------------------- 1 | #------------------------------------------------------------------------------# 2 | # OFFICIAL UBUNTU REPOS # 3 | #------------------------------------------------------------------------------# 4 | 5 | 6 | ###### Ubuntu Main Repos 7 | deb http://COUNTRY.archive.ubuntu.com/ubuntu/ RELEASE main restricted universe multiverse 8 | deb-src http://COUNTRY.archive.ubuntu.com/ubuntu/ RELEASE main restricted universe multiverse 9 | 10 | ###### Ubuntu Update Repos 11 | deb http://COUNTRY.archive.ubuntu.com/ubuntu/ RELEASE-security main restricted universe multiverse 12 | #deb-src http://COUNTRY.archive.ubuntu.com/ubuntu/ RELEASE-security main restricted universe multiverse 13 | deb http://COUNTRY.archive.ubuntu.com/ubuntu/ RELEASE-updates main restricted universe multiverse 14 | #deb-src http://COUNTRY.archive.ubuntu.com/ubuntu/ RELEASE-updates main restricted universe multiverse 15 | #deb http://COUNTRY.archive.ubuntu.com/ubuntu/ RELEASE-backports main restricted universe multiverse 16 | #deb-src http://COUNTRY.archive.ubuntu.com/ubuntu/ RELEASE-backports main restricted universe multiverse 17 | 18 | ###### Ubuntu Partner Repo 19 | #deb http://archive.canonical.com/ubuntu RELEASE partner 20 | #deb-src http://archive.canonical.com/ubuntu RELEASE partner 21 | -------------------------------------------------------------------------------- /setup/templates/source.list/ubuntu.tuna.template: -------------------------------------------------------------------------------- 1 | #------------------------------------------------------------------------------# 2 | # OFFICIAL UBUNTU REPOS # 3 | #------------------------------------------------------------------------------# 4 | 5 | 6 | ###### Ubuntu Main Repos 7 | deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ RELEASE main restricted universe multiverse 8 | #deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ RELEASE main restricted universe multiverse 9 | 10 | ###### Ubuntu Update Repos 11 | deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ RELEASE-security main restricted universe multiverse 12 | #deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ RELEASE-security main restricted universe multiverse 13 | deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ RELEASE-updates main restricted universe multiverse 14 | #deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ RELEASE-updates main restricted universe multiverse 15 | #deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ RELEASE-backports main restricted universe multiverse 16 | #deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ RELEASE-backports main restricted universe multiverse 17 | 18 | ###### Ubuntu Partner Repo 19 | #deb http://archive.canonical.com/ubuntu RELEASE partner 20 | #deb-src http://archive.canonical.com/ubuntu RELEASE partner 21 | -------------------------------------------------------------------------------- /setup/templates/sudoers.template: -------------------------------------------------------------------------------- 1 | # 2 | # This file MUST be edited with the 'visudo' command as root. 3 | # 4 | # Please consider adding local content in /etc/sudoers.d/ instead of 5 | # directly modifying this file. 6 | # 7 | # See the man page for details on how to write a sudoers file. 8 | # 9 | # 10 | #Defaults env_keep -="HOME" 11 | 12 | # Host alias specification 13 | 14 | # User alias specification 15 | 16 | # Cmnd alias specification 17 | Cmnd_Alias SYSCMNDS = /usr/local/bin/quickbox/system/*, /usr/local/bin/quickbox/system/lang/*, /usr/local/bin/quickbox/system/theme/*, /usr/local/bin/quickbox/system/updater/* 18 | Cmnd_Alias PKGCMNDS = /usr/local/bin/quickbox/package/install/*, /usr/local/bin/quickbox/package/remove/*, /usr/local/bin/quickbox/package/update/* 19 | Cmnd_Alias PLUGINCMNDS = /usr/local/bin/quickbox/plugin/install/installplugin-*, /usr/local/bin/quickbox/plugin/remove/removeplugin-* 20 | Cmnd_Alias GENERALCMNDS = /bin/mount, /bin/systemctl, /root/acme.sh/acme.sh, /usr/sbin/service php7.4-fpm reload, /usr/sbin/service php7.4-fpm restart, /usr/bin/mysql, /sbin/ip route get 8.8.8.8 21 | 22 | www-data ALL = (ALL) NOPASSWD: SYSCMNDS, PKGCMNDS, PLUGINCMNDS, GENERALCMNDS 23 | 24 | -------------------------------------------------------------------------------- /setup/templates/systemd/quickbox-ws.service.template: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=QuickBox Status Update WebSocket Interface 3 | Requires=network.target 4 | After=network.target 5 | 6 | [Service] 7 | Type=simple 8 | ExecStart=/usr/bin/node /srv/dashboard/ws/dist/server.js 9 | ExecReload=/bin/kill -HUP $MAINPID 10 | KillMode=process 11 | Restart=on-failure 12 | RestartSec=42s 13 | 14 | [Install] 15 | WantedBy=multi-user.target 16 | -------------------------------------------------------------------------------- /setup/templates/systemd/ttyd.service.template: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Terminal over HTTP 3 | Required=sshd.service 4 | After=sshd.service 5 | 6 | [Service] 7 | User=USERNAME 8 | Group=USERNAME 9 | Type=simple 10 | WorkingDirectory=/home/USERNAME 11 | ExecStart=/usr/local/bin/ttyd -i 127.0.0.1 -p 4200 -W bash 12 | ExecReload=/bin/kill -HUP $MAINPID 13 | KillMode=process 14 | Restart=on-abort 15 | 16 | [Install] 17 | WantedBy=multi-user.target -------------------------------------------------------------------------------- /setup/templates/tracker/denypublic.template: -------------------------------------------------------------------------------- 1 | IFS=$'\n' 2 | L=$(/usr/bin/sort /etc/trackers | /usr/bin/uniq) 3 | for fn in $L; do 4 | /sbin/iptables -D INPUT -d $fn -j DROP 5 | /sbin/iptables -D FORWARD -d $fn -j DROP 6 | /sbin/iptables -D OUTPUT -d $fn -j DROP 7 | /sbin/iptables -A INPUT -d $fn -j DROP 8 | /sbin/iptables -A FORWARD -d $fn -j DROP 9 | /sbin/iptables -A OUTPUT -d $fn -j DROP 10 | done 11 | -------------------------------------------------------------------------------- /setup/templates/vsftpd/vsftpd.conf.template: -------------------------------------------------------------------------------- 1 | listen=YES 2 | anonymous_enable=NO 3 | guest_enable=NO 4 | dirmessage_enable=YES 5 | dirlist_enable=YES 6 | download_enable=YES 7 | secure_chroot_dir=/var/run/vsftpd/empty 8 | chroot_local_user=YES 9 | chroot_list_file=/etc/vsftpd.chroot_list 10 | passwd_chroot_enable=YES 11 | allow_writeable_chroot=YES 12 | pam_service_name=vsftpd 13 | ssl_enable=YES 14 | allow_anon_ssl=NO 15 | force_local_data_ssl=NO 16 | force_local_logins_ssl=NO 17 | ssl_tlsv1=YES 18 | ssl_sslv2=NO 19 | ssl_sslv3=NO 20 | require_ssl_reuse=NO 21 | ssl_request_cert=YES 22 | ssl_ciphers=HIGH 23 | rsa_cert_file=/etc/ssl/private/vsftpd.pem 24 | local_enable=YES 25 | write_enable=YES 26 | local_umask=022 27 | max_per_ip=0 28 | pasv_enable=YES 29 | port_enable=YES 30 | pasv_promiscuous=NO 31 | port_promiscuous=NO 32 | pasv_min_port=0 33 | pasv_max_port=0 34 | listen_port=5757 35 | seccomp_sandbox=no 36 | utf8_filesystem=YES 37 | -------------------------------------------------------------------------------- /setup/templates/vsftpd/vsftpd.conf.tls.template: -------------------------------------------------------------------------------- 1 | listen=YES 2 | anonymous_enable=NO 3 | guest_enable=NO 4 | dirmessage_enable=YES 5 | dirlist_enable=YES 6 | download_enable=YES 7 | secure_chroot_dir=/var/run/vsftpd/empty 8 | chroot_local_user=YES 9 | chroot_list_file=/etc/vsftpd.chroot_list 10 | passwd_chroot_enable=YES 11 | allow_writeable_chroot=YES 12 | pam_service_name=vsftpd 13 | ssl_enable=YES 14 | allow_anon_ssl=NO 15 | force_local_data_ssl=NO 16 | force_local_logins_ssl=NO 17 | ssl_tlsv1=YES 18 | ssl_sslv2=NO 19 | ssl_sslv3=NO 20 | require_ssl_reuse=NO 21 | ssl_request_cert=YES 22 | ssl_ciphers=HIGH 23 | rsa_cert_file=CERTFILE 24 | rsa_private_key_file=KEYFILE 25 | local_enable=YES 26 | write_enable=YES 27 | local_umask=022 28 | max_per_ip=0 29 | pasv_enable=YES 30 | port_enable=YES 31 | pasv_promiscuous=NO 32 | port_promiscuous=NO 33 | pasv_min_port=0 34 | pasv_max_port=0 35 | listen_port=5757 36 | seccomp_sandbox=no 37 | utf8_filesystem=YES 38 | -------------------------------------------------------------------------------- /setup/themes/.gitignore: -------------------------------------------------------------------------------- 1 | # Windows image file caches 2 | Thumbs.db 3 | ehthumbs.db 4 | 5 | # Folder config file 6 | Desktop.ini 7 | 8 | # Recycle Bin used on file shares 9 | $RECYCLE.BIN/ 10 | 11 | # Windows Installer files 12 | *.cab 13 | *.msi 14 | *.msm 15 | *.msp 16 | 17 | # Windows shortcuts 18 | *.lnk 19 | 20 | # ========================= 21 | # Operating System Files 22 | # ========================= 23 | 24 | # OSX 25 | # ========================= 26 | 27 | .DS_Store 28 | .AppleDouble 29 | .LSOverride 30 | 31 | # Thumbnails 32 | ._* 33 | 34 | # Files that might appear in the root of a volume 35 | .DocumentRevisions-V100 36 | .fseventsd 37 | .Spotlight-V100 38 | .TemporaryItems 39 | .Trashes 40 | .VolumeIcon.icns 41 | 42 | # Directories potentially created on remote AFP share 43 | .AppleDB 44 | .AppleDesktop 45 | Network Trash Folder 46 | Temporary Items 47 | .apdisk 48 | -------------------------------------------------------------------------------- /setup/themes/README.md: -------------------------------------------------------------------------------- 1 | # quickbox_themes 2 | All additional themes for the QuickBox Dashboard are housed here... nice and tidy like! Want to make your own? Fork and submit! 3 | 4 | ## Feel free to discuss... :stuck_out_tongue_winking_eye: 5 | 6 | ### Want to install the QuickBox Smoked Theme? 7 | 8 | ##Updated Theme Install Method 9 | 10 | Thanks [@Reynald](https://plaza.quickbox.io/u/reynald) for confirming this method to be working! 11 | 12 | You can add a **.smoked.lock** which the updater (if it dicovers the theme lock) will port in the needed theme assets. You can add this lock by doing 13 | ``` 14 | printf "" > /srv/dashboard/db/.smoked.lock 15 | ``` 16 | 17 | If you want the default theme back then do: 18 | ``` 19 | rm -f /srv/dashboard/db/.smoked.lock 20 | ``` 21 | Then add the 'defaulted' lock file and run the update. 22 | ``` 23 | printf "" > /srv/dashboard/db/.defaulted.lock 24 | ``` 25 | 26 | Perform `box upgrade` to set the new/previous theme. 27 | 28 | ## The [@Reynald](https://plaza.quickbox.io/u/reynald) method - simple one liner! 29 | 30 | Select **smoked**: 31 | ``` 32 | rm -f /srv/dashboard/db/.defaulted.lock && printf "" > /srv/dashboard/db/.smoked.lock && box upgrade 33 | ``` 34 | 35 | Select **defaulted**: 36 | ``` 37 | rm -f /srv/dashboard/db/.smoked.lock && printf "" > /srv/dashboard/db/.defaulted.lock && box upgrade 38 | ``` 39 | 40 | >These have been built in for an addition to the dashboard to swap themes... (that's coming soon) 41 | -------------------------------------------------------------------------------- /setup/themes/defaulted/.gitignore: -------------------------------------------------------------------------------- 1 | # Windows image file caches 2 | Thumbs.db 3 | ehthumbs.db 4 | 5 | # Folder config file 6 | Desktop.ini 7 | 8 | # Recycle Bin used on file shares 9 | $RECYCLE.BIN/ 10 | 11 | # Windows Installer files 12 | *.cab 13 | *.msi 14 | *.msm 15 | *.msp 16 | 17 | # Windows shortcuts 18 | *.lnk 19 | 20 | # ========================= 21 | # Operating System Files 22 | # ========================= 23 | 24 | # OSX 25 | # ========================= 26 | 27 | .DS_Store 28 | .AppleDouble 29 | .LSOverride 30 | 31 | # Thumbnails 32 | ._* 33 | 34 | # Files that might appear in the root of a volume 35 | .DocumentRevisions-V100 36 | .fseventsd 37 | .Spotlight-V100 38 | .TemporaryItems 39 | .Trashes 40 | .VolumeIcon.icns 41 | 42 | # Directories potentially created on remote AFP share 43 | .AppleDB 44 | .AppleDesktop 45 | Network Trash Folder 46 | Temporary Items 47 | .apdisk 48 | -------------------------------------------------------------------------------- /setup/themes/defaulted/skins/filters.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /setup/themes/defaulted/skins/resources.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 10 | 11 | -------------------------------------------------------------------------------- /setup/themes/smoked/.gitignore: -------------------------------------------------------------------------------- 1 | # Windows image file caches 2 | Thumbs.db 3 | ehthumbs.db 4 | 5 | # Folder config file 6 | Desktop.ini 7 | 8 | # Recycle Bin used on file shares 9 | $RECYCLE.BIN/ 10 | 11 | # Windows Installer files 12 | *.cab 13 | *.msi 14 | *.msm 15 | *.msp 16 | 17 | # Windows shortcuts 18 | *.lnk 19 | 20 | # ========================= 21 | # Operating System Files 22 | # ========================= 23 | 24 | # OSX 25 | # ========================= 26 | 27 | .DS_Store 28 | .AppleDouble 29 | .LSOverride 30 | 31 | # Thumbnails 32 | ._* 33 | 34 | # Files that might appear in the root of a volume 35 | .DocumentRevisions-V100 36 | .fseventsd 37 | .Spotlight-V100 38 | .TemporaryItems 39 | .Trashes 40 | .VolumeIcon.icns 41 | 42 | # Directories potentially created on remote AFP share 43 | .AppleDB 44 | .AppleDesktop 45 | Network Trash Folder 46 | Temporary Items 47 | .apdisk 48 | -------------------------------------------------------------------------------- /setup/themes/smoked/skins/filters.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /setup/themes/smoked/skins/resources.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 10 | 11 | --------------------------------------------------------------------------------