{"id":13618399,"url":"https://github.com/AlphaNecron/Void","last_synced_at":"2025-04-14T10:31:55.411Z","repository":{"id":37691357,"uuid":"402756115","full_name":"AlphaNecron/Void","owner":"AlphaNecron","description":"Fast and elegant file hosting service.","archived":true,"fork":false,"pushed_at":"2023-03-27T10:08:34.000Z","size":105476,"stargazers_count":218,"open_issues_count":6,"forks_count":13,"subscribers_count":1,"default_branch":"v1","last_synced_at":"2024-11-08T03:37:05.837Z","etag":null,"topics":["discord-bot","discord-embed","docker","emoji-url","file-hosting","file-sharing","file-upload","hacktoberfest","image","image-hosting","invisible-url","javascript","mantine","mantine-ui","nextjs","react","reactjs","sharex","sharex-server","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AlphaNecron.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2021-09-03T12:03:53.000Z","updated_at":"2024-10-25T05:58:37.000Z","dependencies_parsed_at":"2024-01-14T06:56:56.271Z","dependency_job_id":null,"html_url":"https://github.com/AlphaNecron/Void","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlphaNecron%2FVoid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlphaNecron%2FVoid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlphaNecron%2FVoid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlphaNecron%2FVoid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AlphaNecron","download_url":"https://codeload.github.com/AlphaNecron/Void/tar.gz/refs/heads/v1","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248862711,"owners_count":21173865,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["discord-bot","discord-embed","docker","emoji-url","file-hosting","file-sharing","file-upload","hacktoberfest","image","image-hosting","invisible-url","javascript","mantine","mantine-ui","nextjs","react","reactjs","sharex","sharex-server","typescript"],"created_at":"2024-08-01T20:02:00.560Z","updated_at":"2025-04-14T10:31:53.908Z","avatar_url":"https://github.com/AlphaNecron.png","language":"TypeScript","readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/AlphaNecron/Void/v1/public/banner.png\" width=\"480\" height=\"270\" alt=\"Banner\"/\u003e\n\n  \u003ch4\u003e A feature-rich self-hosted file hosting service.\u003c/h4\u003e\n\n![Build v1](https://img.shields.io/github/workflow/status/AlphaNecron/Void/Build/v1?colorA=000000\u0026colorB=68D391\u0026label=V1\u0026logo=github\u0026style=for-the-badge)\n![Docker v1](https://img.shields.io/github/workflow/status/AlphaNecron/Void/Build/v1?colorA=000000\u0026colorB=0db7ed\u0026label=DOCKER\u0026logo=docker\u0026style=for-the-badge)\n![Stars](https://img.shields.io/github/stars/AlphaNecron/Void?colorA=000000\u0026colorB=4527A0\u0026logo=github\u0026style=for-the-badge)\n![Version](https://img.shields.io/github/package-json/v/AlphaNecron/Void/v1?colorA=000000\u0026colorB=4527A0\u0026label=latest\u0026logo=react\u0026logoColor=ffffff\u0026style=for-the-badge)\n![Last commit](https://img.shields.io/github/last-commit/AlphaNecron/Void/v1?colorA=000000\u0026colorB=4527A0\u0026logo=github\u0026style=for-the-badge)\n\u003c/div\u003e\n\n\u003e **Warning**\n\u003e This release is not fully stable and may subject to major changes in the future.  \n\u003e Neutron is not ready for usage due to uncompleted features.\n\n### Requirements\n\n- `node \u003e= 16`\n- `postgresql \u003e= 14`\n- `yarn \u003e= 3`\n\n### Installation / Deployment\n\n  ```sh\n  git clone https://github.com/AlphaNecron/Void.git --branch=v1\n  cd Void\n  yarn install # or npm install\n  cp config.example.json config.json\n  nano config.json # edit the config file\n  yarn prod # to build and start the production server\n  # or\n  yarn dev # to start the development server\n  ```\n\n### Docker\n\n  ```sh\n  git clone https://github.com/AlphaNecron/Void.git --branch=v1\n  cd Void\n  cp config.example.json config.json\n  nano config.json # edit the config file\n  docker pull alphanecron/void:v1\n  docker run -p 3000:3000 -v $PWD/config.json:/void/config.json -d alphanecron/void:v1\n  ```\n\n### Docker compose\n\n  ```sh\n  git clone https://github.com/AlphaNecron/Void.git --branch=v1\n  cd Void\n  cp config.example.json config.json\n  nano config.json # edit the config file\n  docker-compose up --build -d\n  ```\n\n### Reverse proxy (with `nginx`)\n\n  ```nginx\n  server {\n      listen              443 ssl;\n      server_name         your.domain;\n      ssl_certificate     /path/to/cert;\n      ssl_certificate_key /path/to/key;\n      ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;\n      ssl_ciphers         HIGH:!aNULL:!MD5;\n      client_max_body_size 100M;\n      location / {\n          proxy_pass http://localhost:3000;\n          proxy_set_header Host $host;\n          proxy_set_header X-Real-IP $remote_addr;\n          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n          proxy_set_header X-Forwarded-Proto $scheme;\n      }\n  }\n  ```\n\n### Config schema\n\n```json5\n{\n  \"void\": {\n    \"useHttps\": false,\n    // Whether to enable HTTPS for URLs created returned by API.\n    \"host\": \"0.0.0.0\",\n    // The host Void should run on.\n    \"port\": 3000,\n    // The port Void should run on.\n    \"secret\": \"secretmin32characters\",\n    // The secret key used to hash cookies. (*)\n    \"rateLimit\": 1200,\n    // Rate limit for users per hour. (**)\n    \"defaultDomain\": \"http://localhost:3000\",\n    // The base domain used for multiple purposes.\n    \"databaseUrl\": \"postgres://postgres:postgres@postgres/postgres\",\n    // The Postgres database URL.\n    \"url\": {\n      \"allowVanityUrl\": true,\n      // Whether to allow users to shorten with vanity URLs.\n      \"length\": 6\n      // The maximum length for URLs generated with shortener and uploader.\n    },\n    \"discordProvider\": {\n      \"clientId\": \"YOUR DISCORD CLIENT ID\",\n      // Discord client id, you can grab one in the Application dashboard.\n      \"clientSecret\": \"YOUR DISCORD CLIENT SECRET\"\n      // Discord client secret, you can grab one in the Application dashboard as well.\n    },\n    \"upload\": {\n      \"outputDirectory\": \"./uploads\",\n      // The directory to save uploaded files.\n      \"blacklistedExtensions\": [\n        \".zip\",\n        \".exe\"\n      ]\n      // Prevent users from uploading files with certain extensions. (**)\n    }\n  },\n  \"neutron\": {\n    \"enabled\": false,\n    // Whether to enable the Discord bot\n    \"token\": \"YOUR_DISCORD_BOT_TOKEN\",\n    // Your Discord bot token\n    \"clientId\": \"YOUR_DISCORD_APP_CLIENT_ID\"\n    // Your Discord bot client id\n  }\n}\n```\n\n(*): If it is empty, a random key will be generated, otherwise, it must be at least 32 characters.  \n(**) Users with `ADMINISTRATION` permission or higher will not be affected by this.\n\n### Features\n\n- Configurable\n- Fast with eye-catching UI\n- Easy to install\n- Embed customization\n- Custom file viewer for texts, videos, images and audio files\n- Multiple URL charsets (`alphanumeric`, `emoji` and `invisible`)\n- Comes with prebuilt Docker images\n- Discord integration (Login with Discord)\n- Open registration with referral codes\n- Web upload with progress\n- Dedicated Discord bot, mobile application as well as desktop application (WIP).  \n  and more...\n\n### Techstack\n\n- [NextJS](https://nextjs.org) (Framework)\n- [ReactJS](https://reactjs.org) (Front-end)\n- [NodeJS](https://nodejs.org) (Back-end runtime)\n- [Mantine](https://mantine.dev) (UI library)\n- [Iron Session](https://www.npmjs.com/package/iron-session) (Authentication)\n- [Prisma](https://www.prisma.io) (ORM)\n- [PostgreSQL](https://www.postgresql.org) (Database)\n- [Yarn](https://yarnpkg.com) (Package manager)\n- [TypeScript](https://www.typescriptlang.org) (Programming language)\n\n### Credits\n\n- v0 codebase from `diced/zipline`\n- Logo and favicon from `icons8`\n\n### Contributors\n\n![Contributors](https://contrib.rocks/image?repo=AlphaNecron/Void)\n\n### Default credentials\n\n- Username: `void`\n- Password: `voiduser`\n","funding_links":[],"categories":["Software","TypeScript"],"sub_categories":["File Transfer - Single-click \u0026 Drag-n-drop Upload"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAlphaNecron%2FVoid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAlphaNecron%2FVoid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAlphaNecron%2FVoid/lists"}