StreamingServer

command module
v0.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 28, 2020 License: MIT Imports: 19 Imported by: 0

README

StreamingServer

A simple video streaming services with authentication using redis

License Version Code size Repo size Issue open Issue closed Codacy Badge Go Report Card GoDoc

Introduction

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 preferite 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 an 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 somenone that you know

Requirements

  • 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

Table Of Contents

Prerequisites

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

Usage

In Details

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

Example response

TODO

Contributing

  • 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

Test are work in progress, is a good first usse for contribute to the project

Versioning

We use SemVer for versioning.

Authors

Contributors

  • Alessio Savi

License

This project is licensed under the MIT License - see the LICENSE file for details

Acknowledgments

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

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
database
utils

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL