Fast and elegant file hosting service.
Warning This release is not fully stable and may subject to major changes in the future.
Neutron is not ready for usage due to uncompleted features.
node >= 16
postgresql >= 14
yarn >= 3
git clone https://github.com/AlphaNecron/Void.git --branch=v1
cd Void
yarn install # or npm install
cp config.example.json config.json
nano config.json # edit the config file
yarn prod # to build and start the production server
# or
yarn dev # to start the development server
git clone https://github.com/AlphaNecron/Void.git --branch=v1
cd Void
cp config.example.json config.json
nano config.json # edit the config file
docker pull alphanecron/void:v1
docker run -p 3000:3000 -v $PWD/config.json:/void/config.json -d alphanecron/void:v1
git clone https://github.com/AlphaNecron/Void.git --branch=v1
cd Void
cp config.example.json config.json
nano config.json # edit the config file
docker-compose up --build -d
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;
}
}
{
"void": {
"useHttps": false,
// Whether to enable HTTPS for URLs created returned by API.
"host": "0.0.0.0",
// The host Void should run on.
"port": 3000,
// The port Void should run on.
"secret": "secretmin32characters",
// The secret key used to hash cookies. (*)
"rateLimit": 1200,
// Rate limit for users per hour. (**)
"defaultDomain": "http://localhost:3000",
// The base domain used for multiple purposes.
"databaseUrl": "postgres://postgres:postgres@postgres/postgres",
// The Postgres database URL.
"url": {
"allowVanityUrl": true,
// Whether to allow users to shorten with vanity URLs.
"length": 6
// The maximum length for URLs generated with shortener and uploader.
},
"discordProvider": {
"clientId": "YOUR DISCORD CLIENT ID",
// Discord client id, you can grab one in the Application dashboard.
"clientSecret": "YOUR DISCORD CLIENT SECRET"
// Discord client secret, you can grab one in the Application dashboard as well.
},
"upload": {
"outputDirectory": "./uploads",
// The directory to save uploaded files.
"blacklistedExtensions": [
".zip",
".exe"
]
// Prevent users from uploading files with certain extensions. (**)
}
},
"neutron": {
"enabled": false,
// Whether to enable the Discord bot
"token": "YOUR_DISCORD_BOT_TOKEN",
// Your Discord bot token
"clientId": "YOUR_DISCORD_APP_CLIENT_ID"
// Your Discord bot client id
}
}
(*): If it is empty, a random key will be generated, otherwise, it must be at least 32 characters.
(**) Users with ADMINISTRATION
permission or higher will not be affected by this.
alphanumeric
, emoji
and invisible
)diced/zipline
icons8
void
voiduser