mirror of https://github.com/AlphaNecron/Void.git
139 lines
4.4 KiB
Markdown
139 lines
4.4 KiB
Markdown
<div align="center">
|
|
<img src="https://raw.githubusercontent.com/AlphaNecron/Void/dev/public/banner.png" width="480" height="270"/>
|
|
|
|
A self-hosted file hosting service based on Zipline with many features.
|
|
|
|
![Build stable](https://img.shields.io/github/workflow/status/AlphaNecron/Void/CI:%20Build/v0?color=%2368D391&label=stable&logo=github&style=for-the-badge)
|
|
![Stars](https://img.shields.io/github/stars/AlphaNecron/Void?color=%23B794F4&logo=github&style=for-the-badge)
|
|
![Version](https://img.shields.io/github/package-json/v/AlphaNecron/Void/v0?color=%23B794F4&label=latest&logo=react&logoColor=ffffff&style=for-the-badge)
|
|
![Last commit](https://img.shields.io/github/last-commit/AlphaNecron/Void/dev?color=%234FD1C5&logo=github&style=for-the-badge)
|
|
</div>
|
|
|
|
>## I'm currently very busy so there's hardly any spare time for me to develop Void. As an alternative, try out [Zipline](https://github.com/diced/zipline), an actively developed file hosting service.
|
|
|
|
### Requirements
|
|
- `node` >= 14
|
|
- PostgreSQL
|
|
- Either `yarn` or `npm`
|
|
|
|
### Installation / Deployment
|
|
```sh
|
|
git clone https://github.com/AlphaNecron/Void.git
|
|
cd Void
|
|
yarn install # or npm install
|
|
cp config.example.toml config.toml
|
|
nano config.toml # edit the config file
|
|
yarn build # or npm run build
|
|
yarn start # or npm start
|
|
```
|
|
|
|
### Docker
|
|
```sh
|
|
git clone https://github.com/AlphaNecron/Void.git
|
|
cd Void
|
|
cp config.example.toml config.toml
|
|
nano config.toml # edit the config file
|
|
docker pull alphanecron/void:v0
|
|
docker run -p 3000:3000 -v $PWD/config.toml:/void/config.toml -d alphanecron/void:v0
|
|
```
|
|
|
|
### Docker compose
|
|
```sh
|
|
git clone https://github.com/AlphaNecron/Void.git
|
|
cd Void
|
|
cp config.example.toml config.toml
|
|
nano config.toml # edit the config file
|
|
docker-compose up --build -d
|
|
```
|
|
|
|
### Reverse proxy (nginx)
|
|
```nginx
|
|
server {
|
|
listen 443 ssl;
|
|
server_name your.domain;
|
|
ssl_certificate /path/to/cert;
|
|
ssl_certificate_key /path/to/key;
|
|
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
|
|
ssl_ciphers HIGH:!aNULL:!MD5;
|
|
client_max_body_size 100M;
|
|
location / {
|
|
proxy_pass http://localhost:3000;
|
|
proxy_set_header Host $host;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
proxy_set_header X-Forwarded-Proto $scheme;
|
|
}
|
|
}
|
|
```
|
|
|
|
### Config schema
|
|
```toml
|
|
[core]
|
|
secure = false # Whether to use https or not
|
|
secret = 'supersecretpassphrase' # The secret used to sign cookie
|
|
host = '0.0.0.0' # The host Void should run on
|
|
port = 3000 # The port Void should run on
|
|
database_url = 'postgres://username:password@localhost:5432/db_name' # PostgreSQL database url
|
|
|
|
[bot]
|
|
enabled = false # Whether to enable the bot or not
|
|
prefix = '&' # Bot's prefix
|
|
token = '' # Bot's token
|
|
admin = [''] # Admin ids
|
|
log_channel = '' # The channel where logs are sent, leave blank to disable logging
|
|
default_uid = 1 # The default user id used to shorten and upload
|
|
hostname = 'example.com' # The hostname shortened urls should use in Twilight
|
|
|
|
[shortener]
|
|
allow_vanity = true # Whether to allow vanity urls or not
|
|
length = 6 # Slug length
|
|
route = '/go' # Route to serve shortened urls
|
|
|
|
[uploader]
|
|
raw_route = '/r' # Route to serve raw contents
|
|
length = 6 # Slug length
|
|
directory = './uploads' # The directory where images are stored
|
|
max_size = 104857600 # Max upload size (users only), in bytes
|
|
blacklisted = ['exe'] # Blacklisted file extensions (users only)
|
|
```
|
|
|
|
### Features
|
|
- Configurable
|
|
- Fast and reliable
|
|
- Elegant Web UI
|
|
- Built with Next.js & React
|
|
- Token-protected uploading
|
|
- Easy to setup
|
|
- Invisible URL
|
|
- Emoji URL
|
|
- Text previewing (with syntax highlighting)
|
|
- Video embed
|
|
- URL shortener
|
|
- Discord bot
|
|
- Docker support
|
|
- Password-protected URL
|
|
- Embed customization (with variables)
|
|
|
|
### Contribution
|
|
- All pull requests must be made in `dev` branch, pull requests in `v0` will be closed.
|
|
|
|
### Default credentials
|
|
- Username: `admin`
|
|
- Password: `voiduser`
|
|
|
|
### Bot permissions
|
|
#### These permissions are required for the bot to work properly (27712):
|
|
- Add reactions
|
|
- Read messages
|
|
- Send messages
|
|
- Manage messages
|
|
- Embed links
|
|
|
|
### Todo
|
|
- Discord integration
|
|
- Album / Bulk upload
|
|
|
|
### Credits
|
|
- Source code and API from `diced/zipline`
|
|
- Logo and favicon from `icons8`
|