A file server with built-in user and file management, built on NodeJS.
- Docker or Docker Desktop, if you are on Windows
- NodeJS (Tested on 19+)
- PostgreSQL (Tested on 16.4)
Note
This codebase is feature-locked and will only be modified when a feature-breaking bug is discovered. Please check out the new version of media server when it's out!
Imagination server welcomes all contributors, but keep in mind that the project is mostly finished and no new features are being considered as of now. If you wish to add a new section, feature, or change design, please open an issue first, before creating a pull request, to insure that you don't waste your time for nothing.
For code standards use the config provided for Prettier.
$ git clone https://github.com/LMNYX/imagination-server.git
$ cd imagination-server
$ cp .example.env .env
$ docker compose up -dPrerequisites include PostgreSQL and NodeJS being installed on the machine.
$ git clone https://github.com/LMNYX/imagination-server.git
$ cd imagination-server
$ cp .example.env .env
$ set -o allexport && source .env set && set +o allexport
$ node run build # or yarn build
$ node run start # or yarn startAfter you started the server, you will need to open the service in your browser and set username for root user and title for web pages.
When you complete the setup and press the button to do so, you will be displayed the key for access to your account. It will not be displayed again after that.
When you're ready refresh the page and you will be able to access the service's functionality.
Environment variables were not created, most likely. To fix, run this:
$ cp .example.env
$ set -o appexport
$ source .env set
$ set +o allexportIf this didn't help, check if your PostgreSQL credentials are correct in the .env file.
Environment variables are incorrectly configured, check .env, or, most likely, expose port is already used.
Please run node generate_docs.js if you have modified API endpoints to re-generate the JSON Documentation.
If you get a permissions error, allow writing and reading of the file public/api.json