Sign inSign up

levibickel/flix

By levibickel

•Updated over 3 years ago
Archived

Self-Hosted Movie and TV Show management system hosted on Docker

Image
Web servers
Content management system
0

259

levibickel/flix repository overview

⁠Flix

⁠Requirements:

  1. SQL Server

⁠appsettings.json file layout:

Fill in the following appsettings.json file with your API keys and connection string information and save it at a location that will be accessible from the docker container. Using "MultipleActiveResultSets=true;TrustServerCertificate=true" with the SQL connection string has worked best for this application.

{
  "ConnectionStrings": {
    "DefaultConnection": " "
  },
  "Authentication": {
    "Google": {
      "ClientSecret": "",
      "ClientId": ""
    },
    "Facebook": {
      "AppSecret": "",
      "AppId": ""
    }
  },
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*"
}

⁠Docker Setup:

  1. Download the latest docker image from levibickel/flix:latest
docker pull levibickel/flix:latest
  1. Now you can create your directories to store your https certificate and your library.
mkdir /flix/library
mkdir /flix/config
  1. Now that your directories have been created, you need to copy your movie files into the library folder and move your https certificate into the config directory.
  2. Use the following docker run command to start up the container with the default settings. Make sure to update the path, port and certificate passwords as needed:
docker run --hostname=flix --env=ASPNETCORE_URLS=https://+:443;http://+:80 --env=ASPNETCORE_Kestrel__Certificates__Default__Password=SecurePassword --env=ASPNETCORE_Kestrel__Certificates__Default__Path=/config/flix.pfx --env=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin --env=DOTNET_RUNNING_IN_CONTAINER=true --env=DOTNET_VERSION=7.0.4 --env=ASPNET_VERSION=7.0.4 --volume=/flix/library/:/video --volume=/flix/config/appsettings.json:/app/appsettings.json --volume=/flix/config:/config --workdir=/app -p 443:443 -p 80:80 --label='com.microsoft.created-by=visual-studio' --label='com.microsoft.visual-studio.project-name=Flix' --runtime=runc -d levibickel/flix:latest
  1. Now that the docker container is running, open the console for the container and edit the /app/appsettings.json file if not completed before.
nano appsettings.json
  1. Edit the appsettings.json file to fit your deployment requirements. This will include a connection string to the database and Facebook, Google authentication tokens. Lastly the TMDB API token and a sendgrid API Token should be filled in. TMDB - The TMDB API is used to scan the directory and pull images and movie information. SendGrid - This is used for the user registration emails. Connection String - Connection information to the database. Facebook - Facebook authentication is enabled and will need to have an authentication token. Google - Google authentication is enabled and will need to have an authentication token.
  2. Restart the docker container
docker restart flix
  1. Navigate to the docker containers IP address and port in your browser's address bar. Depending on the certificate used, you may need to accept the security warning. Use caution to ensure you are navigating to the correct path first.
https://dockercontainerIP:port

⁠Docker Compose Setup:

The docker compose setup is the recommended setup method.

version: "3"
services:
  flix:
    image: levibickel/flix:latest
    container_name: flix
    environment:
      - PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
      - ASPNETCORE_URLS=https://+:443;http://+:80
      - ASPNETCORE_Kestrel__Certificates__Default__Password=certificatepassword
      - ASPNETCORE_Kestrel__Certificates__Default__Path=/config/flix.pfx
      - DOTNET_RUNNING_IN_CONTAINER=true
      - DOTNET_VERSION=7.0.4
      - ASPNET_VERSION=7.0.4
    volumes:
      - /path/to/flix/library/:/video
      - /path/to/flix/config:/config
      - /path/to/flix/config/appsettings.json:/app/appsettings.json
    ports:
      - 80:80
      - 443:443
    restart: unless-stopped

⁠Notes

  1. Movie files should be listed with their names in both the folder and the file itself. I am hoping that naming conventions won't be as important in later updates:
/example movie/example movie.mp4
  1. Flix has been tested with networked drives shared over SMB and mapped to the host to create "permanent" shares. No other method of networked shares has been tested at this time.
  2. Default login credential: Username: [email protected]⁠ Password: B1ckelS0lutions!! -Please change the password after first startup.
  3. This application has only been tested with SQL Server.

⁠Feedback

⁠Email me at [email protected]⁠

Tag summary

Content type

Image

Digest

sha256:0ae09d52d…

Size

125.6 MB

Last updated

over 3 years ago

docker pull levibickel/flix