openship

multi-channel fulfillment at scale

AGPL-3.0 License

Stars
1K
Committers
4

Openship is an operations platform that enables multi-channel fulfillment

Website · Documentation · Openship Cloud

Running locally

To get Openship running on your local machine:

Clone the repo

git clone https://github.com/openshiporg/openship

Rename example.env to .env and fill out these required values

//.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.

Start the application

Run the following commands start up Openship:

$ cd openship
$ yarn install
$ yarn dev

Openship: http://localhost:3000

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.

GraphQL Playground: http://localhost:3000/api/graphql

Use the playground to build and run queries/mutations against the API.

Deployment

Openship uses Next.js, so naturally, it can be hosted anywhere that supports Node.js. Openship also requires a postgres database.

1-Click Deployment

These deployment services offer Node.js and postgres databases so Openship can be deployed in 1-click.

Railway

Render

Vercel

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.

Next.js Deployment

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.

Netlify

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.

Docker

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.

Credits

Openship wouldn't be here without these great projects

Badges
Extracted from project README
Deploy on Railway Deploy to Render Deploy with Vercel Deploy to Netlify
Related Projects