diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..f3ba537
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,40 @@
+### Angular ###
+# compiled output
+client/dist/
+client/tmp/
+client/app/**/*.js
+client/app/**/*.js.map
+
+# dependencies
+client/node_modules/
+client/bower_components/
+
+# IDEs and editors
+client/.idea/
+
+# misc
+client/.sass-cache/
+client/connect.lock/
+client/coverage/
+client/libpeerconnection.log/
+client/npm-debug.log
+client/testem.log
+client/typings/
+
+# e2e
+client/e2e/*.js
+client/e2e/*.map
+
+#System Files
+**/.DS_Store/
+
+### DotnetCore ###
+# .NET Core build folders
+server/**/bin
+server/**/obj
+server/**/*.user
+server/**/.vs
+server/RdtClient.Web/wwwroot/
+
+build/
+publish/
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..ac85d0f
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,28 @@
+# Stage 1 - Build the frontend
+FROM node:12.15-buster AS node-build-env
+
+RUN mkdir /appclient
+WORKDIR /appclient
+
+COPY client/. .
+RUN npm ci
+RUN npx ng build --prod --output-path=out
+
+# Stage 2 - Build the backend
+FROM mcr.microsoft.com/dotnet/sdk:5.0 AS dotnet-build-env
+
+RUN mkdir /appserver
+WORKDIR /appserver
+
+COPY server/. .
+RUN dotnet restore RdtClient.sln
+RUN dotnet build -c Release
+RUN dotnet publish -c Release -o out
+
+# Stage 3 - Build runtime image
+FROM mcr.microsoft.com/dotnet/aspnet:5.0.1-buster-slim AS base
+RUN mkdir /app
+WORKDIR /app
+COPY --from=dotnet-build-env /appserver/out .
+COPY --from=node-build-env /appclient/out ./wwwroot
+ENTRYPOINT ["dotnet", "RdtClient.Web.dll"]
\ No newline at end of file
diff --git a/README.md b/README.md
index cf1bc4a..05d2bf4 100644
--- a/README.md
+++ b/README.md
@@ -10,21 +10,34 @@ This is a web interface to manage your torrents on Real-Debrid. It supports the
**You will need a Premium service at Real-Debrid!**
-## Installation
+## Docker Run
-### Docker Installation
+```console
+docker run --cap-add=NET_ADMIN -d \
+ -v /your/storage/path/:/data/downloads \
+ --log-driver json-file \
+ --log-opt max-size=10m \
+ -p 6500:6500 \
+ rogerfar/rdtclient
+```
-### Windows Service Installation
+Replace `/your/storage/path/` with your local path to download files to. For Windows i.e. `C:/Downloads`.
+
+## Windows Service Installation
1. Make sure you have the .NET 5.0.1+ runtime installed from [here](https://dotnet.microsoft.com/download).
1. Unpack the latest release from the releases folder and run `startup.bat`. This will start the application on port 6500.
-1. Browse to http://127.0.0.1:6500
-1. The very first credentials you enter in will be remembered for future logins.
-1. Click on Settings on the top and enter your Real-Debrid API key.
-1. Change your download path if needed.
1. To install as service on Windows, exit the console and run `serviceinstall.bat` as administrator.
1. To change the default port edit the `appsettings.json` file.
+## Setup
+
+1. Browse to [http://127.0.0.1:6500](http://127.0.0.1:6500) (or the path of your server).
+1. The very first credentials you enter in will be remembered for future logins.
+1. Click on `Settings` on the top and enter your Real-Debrid API key (found here: [https://real-debrid.com/apitoken](https://real-debrid.com/apitoken).
+1. Change your download path if needed. When using Docker, this path will be the path on your local machine.
+1. Save your settings.
+
## Removing
1. Run `serviceremove.bat` to remove the service and firewall rules.
@@ -35,21 +48,40 @@ This is a web interface to manage your torrents on Real-Debrid. It supports the
## Connecting Sonarr/Radarr
-1. Login to Sonarr or Radarr and click Settings
-1. Go to the Download Client tab and click the plus to add
-1. Click "qBittorrent" in the list
-1. Enter the IP or hostname of the RealDebridClient in the Host field
-1. Enter the port 6500 in the Port field
+RdtClient emulates the qBittorrent web protocol and allow applications to use those APIs. This way you can use Sonarr and Radarr to download directly from RealDebrid.
+
+1. Login to Sonarr or Radarr and click `Settings`.
+1. Go to the `Download Client` tab and click the plus to add.
+1. Click `qBittorrent` in the list.
+1. Enter the IP or hostname of the RealDebridClient in the `Host` field.
+1. Enter the 6500 in the `Port` field.
1. Enter your Username/Password you setup in step 3 above in the Username/Password field.
1. Leave the other settings as is.
-1. Hit Test and then Save if all is well.
+1. Hit `Test` and then `Save` if all is well.
1. Sonarr will now think you have a regular Torrent client hooked up.
Notice: the progress and ETA reported in Sonarr's Activity tab will not be accurate, but it will report the torrent as completed so it can be processed after it is done downloading.
## Build instructions
-1. Open the client folder project in VS Code and run `npm install`
-2. To debug run `ng serve`, to build run `ng build --prod`
-3. Open the Visual Studio 2019 project `RdtClient.sln` and `Publish`
-4. The result is found in `\rdt-client\Publish`
+### Prerequisites
+
+- NodeJS
+- NPM
+- (optional) Angular CLI
+- .NET 5
+- Visual Studio 2019
+- (optional) Resharper
+
+1. Open the client folder project in VS Code and run `npm install`.
+1. To debug run `ng serve`, to build run `ng build --prod`.
+1. Open the Visual Studio 2019 project `RdtClient.sln` and `Publish` the `RdtClient.Web` to the given `PublishFolder` target.
+1. When debugging, make sure to run `RdtClient.Web.dll` and not `IISExpress`.
+1. The result is found in `Publish`.
+
+## Build docker container
+
+1. In the root of the project run `docker build --tag rdtclient .`
+1. To create the docker container run `docker run --publish 6500:6500 --detach --name rdtclientdev rdtclient:latest`
+1. To stop: `docker stop rdtclient`
+1. To remove: `docker rm rdtclient`
diff --git a/client/src/app/login/login.component.html b/client/src/app/login/login.component.html
index 938cece..9463640 100644
--- a/client/src/app/login/login.component.html
+++ b/client/src/app/login/login.component.html
@@ -40,17 +40,7 @@
-
diff --git a/client/src/app/navbar/add-new-torrent/add-new-torrent.component.html b/client/src/app/navbar/add-new-torrent/add-new-torrent.component.html
index 52c4d27..7e81a8a 100644
--- a/client/src/app/navbar/add-new-torrent/add-new-torrent.component.html
+++ b/client/src/app/navbar/add-new-torrent/add-new-torrent.component.html
@@ -33,9 +33,7 @@
-
- Pick a torrent file...
-
+ Pick a torrent file...
{{ fileName }}
@@ -59,16 +57,13 @@