Nimbus cloud storage
The future of file storage
A better cloud
Quickstart
Prerequisites
1. Clone the Repository
git clone https://github.com/nimbusdotstorage/Nimbus
cd Nimbus2. Install Dependencies
bun i
3. Environment Setup
- Copy .env.example to .env
cp .env.example .envCopy .env to child directories
bun run env:syncFollow the instructions on the first step of this guide.
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
MICROSOFT_CLIENT_ID=
MICROSOFT_CLIENT_SECRET=
BOX_CLIENT_ID=
BOX_CLIENT_SECRET=
# To generate a secret, just run `openssl rand -base64 32`
BETTER_AUTH_SECRET=RESEND_API_KEY=your-api-key-hereWe use Docker to run a PostgreSQL database and Valkey for local development. Follow these steps to set it up:
-
Start the database and valkey:
bun db:up bun cache:up
You should see the
nimbus-dbandnimbus-cachecontainers in the list with a status of "Up".-
Run Database Migrations
After setting up the database, run the migrations:
bun db:pushConnect to the valkey (optional):
# Using valkey-cli inside the container
docker compose exec valkey valkey-cli --user valkey --pass valkeyIn a new terminal, start the development server:
NOTE: this starts both the web and server development servers, to run just one, use
bun dev:weborbun dev:server. Both will need the db running to work.
bun devThe application should now be running at http://localhost:3000
Once the development server is running, you can access the authentication pages:
- Sign In: Navigate to http://localhost:3000/signin
- Sign Up: Navigate to http://localhost:3000/signup
Make sure you have configured the Google OAuth credentials in your .env
file as described in step 4 for authentication to work properly.
Additionally, configure your Resend API key for the forgot password
functionality to work.
If you want to contribute, please refer to the contributing guide
Follow the DEPLOYMENT.md file for instructions on how to deploy with Coolify.
Deployment is the same locally or on a server, but OAuth providers (e.g., Google) require a domain for callback URLs.
- Point your domain to the server.
- Use the domain in Google API keys for callback URLs (e.g.,
https://example.com:1284/api/auth/callback/google). - Update the
.envfile with the domain (e.g.,TRUSTED_ORIGINS=https://example.com:3000).
This will start a Postgres container with default credentials:
- Host:
localhost - Port:
5432 - Database:
nimbus - Username:
postgres - Password:
postgres
And a Valkey container with credentials:
- Host:
localhost - Port:
6379 - Username:
valkey - Password:
valkey
Verify the database and valkey is running if running a detached container:
docker psConnect to the database (optional):
# Using psql client inside the container
docker compose exec postgres psql -U postgres -d nimbusfrom https://github.com/nimbusdotstorage/Nimbus
No comments:
Post a Comment