To get Openship running on your local machine:
git clone https://github.com/openshiporg/openship
//.env
FRONTEND_URL=http://localhost:3000
DATABASE_URL=postgresql://postgres:example@url:3000/postgres
SESSION_SECRET=OH_PLEASE_PLEASE_PLEASE_CHANGE_ME
Be sure to replace DATABASE_URL
with a postgres connection string.
You can run postgres locally or get a database online.
Run the following commands start up Openship:
$ cd openship
$ yarn install
$ yarn dev
Once the application is running, go to localhost:3000. If there are no users in the database, you'll be redirected to localhost:3000/init where you can create the admin user.
Use the playground to build and run queries/mutations against the API.
Openship uses Next.js, so naturally, it can be hosted anywhere that supports Node.js. Openship also requires a postgres
database.
These deployment services offer Node.js
and postgres
databases so Openship can be deployed in 1-click.
Before you click the Vercel deploy button below, be sure to get a postgres database connection string. Vercel has database storage where you can create a postgres database by following these instructions. Be sure to use the POSTGRES_PRISMA_URL
as DATABASE_URL
.
To deploy on platforms that don't support databases like Netlify, you'll need to pass a postgres connection string as the DATABASE_URL
variable.
After the site is deployed, we need to add the correct deployment URL (ending in netlify.app or your custom domain).
Go to site settings > build & deploy > environment and add these variables:
FRONTEND_URL=https://yourapp.netlify.app
Replace FRONTEND_URL
with the url ending in netlify.app. Redeploy the site.
Create a copy of example.env named .env
and cusotmize the session secret, as well as the postgres user/password/dbname as you wish:
cp example.env .env
The project datase init is coupled with the build system, so we have to start the postgres service before building:
mkdir ./volumes/postgres/data
docker-compose up -d postgres
Now build and start the OpenShip container itself:
docker-compose up -d
The web app should be available at curl localhost:3100
. If it is not, please check docker-compose logs
.
Finally, expose the localhost:3100
to the desired public host.
Openship wouldn't be here without these great projects