A simple video streaming services with authentication using redis
This project is developed for have a plug-and-play video streaming server delegated to expose all the films downloaded from you main computer. With this tool, you can save all of you preterits films, song, videos into your PC. Then, you can view these media from anywhere using an internet connection.
The server have a basic authentication system. One endpoint is delegated to register a user, another one is delegated to manage the log-in phase.
Another endpoint is delegated to verify the account, so before that an account is able to stream your resources, you have to verify that the account is related to someone that you know
- GoGPUtils Enhance productivity and avoid to reinvent the wheel every time that you start a Go project
- redis Type-safe Redis client for Golang
- fasthttp Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http
- logrus Structured, pluggable logging for Go.
- filename Hooks for logrus logging
The software is coded in golang
, into the go.mod
file are saved the necessary dependencies. In order to download all
the dependencies, you can type the following string from your terminal
go get -v -u all
tree
.
├── auth
│ └── authutils.go
├── conf // Folder that contains the configuration files
│ ├── ssl // Folder that contains the certificate for the SSL connection
│ │ ├── localhost.crt
│ │ └── localhost.key
│ └── test.json // File that contain the configuration related to the tool
├── crypt
│ └── basiccrypt.go // basiccrypt contain the necessary method to encrypt/decrypt data
├── database
│ └── redis
│ └── basicredis.go // basicredis contain the necessary method to deal with save/load/update data from/to redis
├── datastructures
│ └── datastructures.go // datastructures contain the necessary datastructure used among all the project
├── docker-compose.yml
├── Dockerfile
├── go.mod
├── go.sum
├── log
├── main.go
├── README.md
└── utils
├── common
│ └── commonutils.go // commonutils contain a bunch of method used as utils
└── http
└── httputils.go // httputils contain the core method related to the HTTP functionalities
TODO
- Feel free to open issue in order to require new functionality;
- Feel free to open issue if you discover a bug;
- New idea/request/concept are very appreciated!;
Test are work in progress, is a good first issue for contribute to the project
We use SemVer for versioning.
- Alessio Savi
This project is licensed under the MIT License - see the LICENSE file for details
Security, in this phase of the development, is not my first concern. Please, fill an issue if you find something that can be enhanced from a security POV