Skip to content

Commit

Permalink
Security and Usability Improvements + Extra stuff (#15)
Browse files Browse the repository at this point in the history
## what
* Added the option to customize the stack by Enabling / Disabling apps
* Added Nginx as a reverse proxy, it is working with some apps but not all of them - Please see the README file for reference
* Configured HTTPS in the apps - Please see the README file for reference
* Create the script to generate self-certificate
* Removed some of the `depends_on` entries from the containers to make it more customizable
* Made the `docker-compose` file more compact
* Added missing ports for qBittorrent - 6881 and 6881/udp
* Added several commands to the Makefile (stop, start, restart, generate certificate, backup,etc.. )
* * Backup has its own section in the README
* Added the Stale bot to close stale (duh) issues
* Added pre-commit git hooks
* Added Prowlarr to the stack
* Flaresolverr typo (missing an R) in some entries
* Added a captcha solver to Flaresolverr
* Added some parts of the code to be able to include another VPN server in the future, probably NordVPN
* Overall README improvements and table of contents
* Added Known Issues section to README* 
* * Lidarr is not pre-configured for the indexers because it didn't allow to add for a category issue
* *  Sonarr is not configured yet on HTTPS, it requires more tweaking
* *  Mylar doesn't work with qBittorrent and Nzbget using a self-signed certificate
* *  Lazylibarian doesn't work with qBittorrent using a self-signed certificate. 

## why
* Let the users decide what apps they want/need to use in the stack - Probably solves the forks by @abraxas678 @Elod-T @fr34k8 @mechoriet @memms
* Improve the security by trying to achieve end-to-end cryptography to all the apps by using Nginx as a reverse proxy and enabling HTTPS where possible
* Added services that were requested on issue #14 
* Closes other open issues

## references
* `closes #14 `
* `closes #13 `
* `closes #2 `
* `closes #4 `
  • Loading branch information
ivan-pinatti authored Apr 26, 2023
1 parent a64ec09 commit 2d3213b
Show file tree
Hide file tree
Showing 66 changed files with 2,221 additions and 518 deletions.
96 changes: 95 additions & 1 deletion .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,15 @@ UID=1000
GID=1000
TIMEZONE=America/Toronto
UMASK=022
DOMAIN=localhost

# VPN Configuration
VPN_PROVIDER=protonvpn
PROTONVPN_COUNTRY_AND_SERVER=nl-free-127.protonvpn.net
PROTONVPN_KEY=KLjfIMiuxPskM4+DaSUDmL2uSIYKJ9Wap+CHvs0Lfkw=

# Folders
CERTIFICATES_FOLDER=./certs
CONFIG_FOLDER=./configs
MEDIA_FOLDER=./media
RECYCLE_FOLDER=./shared/Recycle
Expand All @@ -15,19 +22,106 @@ USENET_FOLDER=./shared/Usenet
USENET_BLACKHOLE_FOLDER=./shared/Usenet/Blackhole
USENET_DOWNLOADS_FOLDER=./shared/Usenet/Downloads

# Certificate details
CERT_COUNTRY=XX
CERT_STATE=StateName
CERT_CITY=CityName
CERT_ORGANIZATION=CompanyName
CERT_OU=CompanySectionName
CERT_FQDN=${DOMAIN} # it will use the previously declared DOMAIN variable
CERT_PASSWORD=0123456789

# Default Apps' Profiles (enabled/disabled)
BAZARR_PROFILE=enabled
CALIBRE_PROFILE=enabled
CALIBREWEB_PROFILE=enabled
FLARESOLVERR_PROFILE=enabled
JACKETT_PROFILE=enabled
LAZYLIBRARIAN_PROFILE=enabled
LIDARR_PROFILE=enabled
MYLAR_PROFILE=enabled
NGINX_PROFILE=enabled
NZBGET_PROFILE=enabled
NZBHYDRA2_PROFILE=enabled
PLEX_PROFILE=enabled
PROTONVPN_PROFILE=enabled
QBITTORRENT_PROFILE=enabled
RADARR_PROFILE=enabled
READARR_PROFILE=enabled
SONARR_PROFILE=enabled

# NOT Default Apps' Profiles (enabled/disabled)
PROWLARR_PROFILE=disabled

# Apps Versions
BAZARR_VERSION=latest
CALIBRE_VERSION=latest
CALIBREWEB_VERSION=latest
FLARESOLVER_VERSION=latest
FLARESOLVERR_VERSION=latest
JACKETT_VERSION=latest
LAZYLIBRARIAN_VERSION=latest
LIDARR_VERSION=latest
MYLAR_VERSION=latest
NGINX_VERSION=stable-alpine
NZBGET_VERSION=latest
NZBHYDRA2_VERSION=latest
PLEX_VERSION=latest
PROTONVPN_VERSION=latest
PROWLARR_VERSION=latest
QBITTORRENT_VERSION=latest
RADARR_VERSION=latest
READARR_VERSION=develop
SONARR_VERSION=latest

# Apps Passwords
BAZARR_PASSWORD=bazarr
CALIBRE_PASSWORD=calibre
CALIBRE_WEB_PASSWORD=calibre
JACKETT_PASSWORD=jackett
LAZYLIBRARIAN_PASSWORD=lazylibrarian
LIDARR_PASSWORD=lidarr
MYLAR_PASSWORD=mylar
NZBGET_PASSWORD=nzbget
NZBHYDRA2_PASSWORD=nzbhydra2
QBITTORRENT_PASSWORD=qbittorrent
PROWLARR_PASSWORD=prowlarr
RADARR_PASSWORD=radarr
READARR_PASSWORD=readarr
SONARR_PASSWORD=sonarr

# Apps HTTP Ports
BAZARR_HTTP_PORT=6767
CALIBRE_DESKTOP_HTTP_PORT=8080
CALIBRE_GUI_WEB_HTTP_PORT=8081
CALIBRE_WEB_CONTAINER_HTTP_PORT=8083
FLARESOLVERR_HTTP_PORT=8191
JACKETT_HTTP_PORT=9117
LAZYLIBRARIAN_HTTP_PORT=5299
LIDARR_HTTP_PORT=8686
MYLAR_HTTP_PORT=8090
NGINX_HTTP_PORT=80
NZBGET_HTTP_PORT=6789
NZBHYDRA2_HTTP_PORT=5076
QBITTORRENT_HTTP_PORT=8082
PROWLARR_HTTP_PORT=9696
RADARR_HTTP_PORT=7878
READARR_HTTP_PORT=8787
SONARR_HTTP_PORT=8989

# Apps HTTPS Ports
CALIBRE_DESKTOP_HTTPS_PORT=8181
CALIBRE_WEB_CONTAINER_HTTPS_PORT=8084
LAZYLIBRARIAN_HTTPS_PORT=5300
LIDARR_HTTPS_PORT=6868
MYLAR_HTTPS_PORT=8091
NGINX_HTTPS_PORT=443
NZBGET_HTTPS_PORT=6791
NZBHYDRA2_HTTPS_PORT=5077
PROWLARR_HTTPS_PORT=6969
QBITTORRENT_HTTPS_PORT=8085
RADARR_HTTPS_PORT=7879
READARR_HTTPS_PORT=8788
SONARR_HTTPS_PORT=9899

# Apps Other Ports
QBITTORRENT_PORT=6881
19 changes: 13 additions & 6 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -1,32 +1,39 @@
---
name: Bug report
about: Create a report to help me improve
title: ''
labels: 'bug'
assignees: ''

title: ""
labels: "bug"
assignees: ""
---

## Describe the Bug

A clear and concise description of what the bug is.

## Expected Behavior

A clear and concise description of what you expected to happen.

## Steps to Reproduce

Steps to reproduce the behavior:

1. Go to '...'
2. Run '....'
3. Enter '....'
4. See error

## Screenshots

If applicable, add screenshots or logs to help explain your problem.

## Environment (please complete the following information):

Anything that will help us triage the bug will help. Here are some ideas:
- OS: [e.g. Linux, OSX, WSL, etc]
- Version [e.g. 10.15]

- OS: [e.g. Linux, OSX, WSL, etc]
- Version [e.g. 10.15]

## Additional Context

Add any other context about the problem here.
1 change: 0 additions & 1 deletion .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
blank_issues_enabled: false

contact_links:

- name: Consider contributing / donating
url: https://github.com/sponsors/ivan-pinatti
about: |-
Expand Down
16 changes: 11 additions & 5 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,31 @@
---
name: Feature Request
about: Suggest an idea for this project
title: ''
labels: 'enhancement'
assignees: ''

title: ""
labels: "enhancement"
assignees: ""
---

## Describe the Feature
A clear and concise description of what the bug is.

A clear and concise description of what the bug is.

## Expected Behavior

A clear and concise description of what you expected to happen.

## Use Case

Is your feature request related to a problem/challenge you are trying to solve? Please provide some additional context of why this feature or capability will be valuable.

## Describe Ideal Solution

A clear and concise description of what you want to happen. If you don't know, that's okay.

## Alternatives Considered

Explain what alternative solutions or features you've considered.

## Additional Context

Add any other context or screenshots about the feature request here.
10 changes: 6 additions & 4 deletions .github/ISSUE_TEMPLATE/question.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
---
name: Question
about: Post your question
title: ''
labels: 'question'
assignees: ''

title: ""
labels: "question"
assignees: ""
---

## Describe the scenario

A clear and concise description of what scenario are you considering.

## What is your question?

A clear and concise description of what you would like to know or understand.
17 changes: 10 additions & 7 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
## what
* Describe high-level what changed as a result of these commits (i.e. in plain-english, what do these changes mean?)
* Use bullet points to be concise and to the point.

- Describe high-level what changed as a result of these commits (i.e. in plain-english, what do these changes mean?)
- Use bullet points to be concise and to the point.

## why
* Provide the justifications for the changes (e.g. solution purpose).
* Describe why these changes were made (e.g. why do these commits fix the problem?)
* Use bullet points to be concise and to the point.

- Provide the justifications for the changes (e.g. solution purpose).
- Describe why these changes were made (e.g. why do these commits fix the problem?)
- Use bullet points to be concise and to the point.

## references
* Link to any supporting github issues or helpful documentation to add some context (e.g. stackoverflow).
* Use `closes #123`, if this PR closes a GitHub issue `#123`

- Link to any supporting github issues or helpful documentation to add some context (e.g. stackoverflow).
- Use `closes #123`, if this PR closes a GitHub issue `#123`
17 changes: 17 additions & 0 deletions .github/stale.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 60
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 14
# Issues with these labels will never be considered stale
exemptLabels:
- pinned
- security
# Label to use when marking an issue as stale
staleLabel: wontfix
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Thank you
for your contributions.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false
31 changes: 31 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
repos:
# Detect Secrets
- repo: https://github.com/Yelp/detect-secrets
rev: v1.4.0
hooks:
- id: detect-secrets
args: ["--baseline", ".secrets.baseline"]

# Prettier
- repo: https://github.com/pre-commit/mirrors-prettier
rev: v3.0.0-alpha.6
hooks:
- id: prettier

# pre-commit hooks
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
hooks:
- id: check-added-large-files
- id: check-json
- id: check-symlinks
- id: check-xml
- id: check-yaml
- id: end-of-file-fixer
- id: trailing-whitespace

# Docker-Compose hooks
- repo: https://github.com/IamTheFij/docker-pre-commit
rev: v3.0.1
hooks:
- id: docker-compose-check
Loading

0 comments on commit 2d3213b

Please sign in to comment.