Skip to content

NeoShare is a self-hosted hassle-free file sharing πŸ“‚ service which provides with a single downloadable link πŸ”—.

License

Notifications You must be signed in to change notification settings

XxThunderBlastxX/neoshare

Folders and files

NameName
Last commit message
Last commit date

Latest commit

fb1151c Β· Aug 24, 2024
Aug 18, 2024
Aug 24, 2024
Aug 24, 2024
Aug 17, 2024
Aug 18, 2024
Aug 18, 2024
Aug 19, 2024
Aug 17, 2024
Jul 30, 2024
Jul 30, 2024
Aug 24, 2024
Aug 18, 2024
Aug 17, 2024
Aug 18, 2024
Aug 12, 2024
Aug 18, 2024
Aug 18, 2024
Aug 17, 2024
Aug 17, 2024
Aug 18, 2024
Aug 17, 2024
Aug 17, 2024
Aug 17, 2024
Aug 17, 2024

Repository files navigation

πŸ€– NeoShare

Go version Go report GitHub tag License Gitpod Ready-to-Code

πŸ’‘ Overview

NeoShare is a self-hosted hassle-free file sharing service with a single downloadable link.

πŸ€” Why NeoShare ?

There are many file sharing services available in the market, but none is like NeoShare.

  • Self Hosted :- NeoShare is a self-hosted πŸ‘¨β€πŸ’» file sharing service, which means you have full control over your data πŸ”‘.
  • Direct download link :- NeoShare provides direct download link πŸ”— to the files, which means you can share the link with anyone & they can download the file without requesting for any permission or login 😁.
  • No compression/resizing :- NeoShare does not compress the files, which means the file you upload is the file you download πŸ˜‰.
  • Open Source :- NeoShare is open source, which means you can contribute to the project & make it better πŸŽ‰.

πŸ› οΈ Tech Stack

Environment Variables

  • General Environment Variables
Environment Variable Meaning
PORT TCP port on which to listen for HTTP connections. (default: 8080)
APP_ENV It tells the program about the environment in which it is running. It can either take dev or prod. (default:dev)
FAVICON_URI Use this variable to customize the favicon by setting this variable with the favicon URI of your choice.
  • S3 Environment Variables
Environment Variable Meaning
S3_ENDPOINT It is the endpoint at which your S3 Bucket is hosted.
S3_ACCESS_KEY Access Key provided from your dashboard to access your S3 instance.
S3_SECRET_KEY Secret Key provided from your dashboard to access your S3 instance.
S3_BUCKET Name of the Bucket at which you want to store all your files.
  • OIDC/Auth0 2.0 Auth Environment Variables
Environment Variable Meaning
AUTH_CLIENT_ID Client ID provided by your OIDC auth provider.
AUTH_CLIENT_SECRET Client Secret provided by your OIDC auth provider.
AUTH_CALLBACK_URL URL at which your application will comeback after successfully login.(default: /callback)
AUTH_DOMAIN The Authentication domain of your auth provider, can be recived from your provider dashboard. NOTE: Do provide the domain with http:// or https://.
AUTH_AUDIENCE Audience URL of your provider Auth API/Resource. (Required when you are using Auth0)
AUTH_USER_INFO_URL URL to fetch User Info with a valid access token.
AUTH_LOGOUT_CALLBACK_URL The route of the application at which the provider will callback after logging out from the application.
  • Postgres DB Environment Variables
Environment Variable Meaning
DB_DATABASE Database name in your DB (default: neoshare).
DB_USERNAME Username of your database.
DB_PASSWORD Password of your database.
DB_PORT Port at which the database would be running.(default: 5432)
DB_HOST Host at which your database is running. (default: localhost)

🌐Deployment

  • From Source :- From source it is very straight forward to build. You can build the single binary using this following command :-
  make build

This will generate a binary file named neoshare at ./bin dir of this project. You can run this binary file to start the server with the environment variables mentioned above.

You also need to setup a postgres database , preferably local or using docker. You can run spin up the DB in docker from docker-compose file provided in the project. Just run this command :-

  make db-up

Important

Make sure you have TEMPL and Bun installed on your system. TEMPL is required to generate the *_templ.go files from .templ files & Bun is used to build and bundle styles.css file.

  • From Docker Compose :- You can run the application using the docker compose script provided. Also copy the .env.example file to .env and fill the environment variables. Then run the following command :-
  docker compose up

πŸ“„ License

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

Made with ❀️ by Koustav Mondal