multi-channel fulfillment at scale

Overview

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

//.env
FRONTEND_URL=http://localhost:3000
DATABASE_URL=postgresql://postgres:example@url:3000/postgres
SESSION_SECRET=please_change_me

Be sure to replace DATABASE_URL with a postgres connection string.

You can run postgres locally or get a database online.

Railway offers a free, temporary postgres database.

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.

Keystone CMS: http://localhost:8000

Openship uses Keystone.js. Running Openship locally will give you access to the Keystone CMS at localhost:8000. It's a great way to see and interact with your database.

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

Deploy on Railway

Render

Deploy to Render

Next.js Deployment

To deploy on platforms that don't support databases like Netlify and Vercel, you'll need to pass a postgres connection string as the DATABASE_URL variable.

Vercel

Deploy with Vercel

Netlify

Deploy to Netlify

Credits

Openship wouldn't be here without these great projects

You might also like...

proxy 🦄 yxorp is your Web Proxy as a Service (SAAS) Multi-tenant, Multi-Threaded, with Cache & Article Spinner

proxy 🦄 yxorp is your Web Proxy as a Service (SAAS) Multi-tenant, Multi-Threaded, with Cache & Article Spinner

proxy 🦄 yxorp is your Web Proxy as a Service (SAAS) Multi-tenant, Multi-Threaded, with Cache & Article Spinner. Batteries are included, Content Spinning and Caching Engine, all housed within a stunning web GUI. A unique high-performance, plug-and-play, multi-threaded website mirror and article spinner

Dec 30, 2022

Code in Solidity like a PRO with Egor Gavrilov. Check out YouTube channel ▶️

Code in Solidity like a PRO with Egor Gavrilov. Check out YouTube channel ▶️

Code in Solidity like a PRO with Egor Gavrilov Check out YouTube channel youtube.com/EgorGavrilov Tutorials Perfect Solidity Stack It's easy to get st

Dec 19, 2022

Integrate Railway Project events with Telegram Chat/Channel using Railway Webhooks

Railway to Telegram Integrate Railway Project events with Telegram Chat/Channel using Railway Webhooks! One Click Self Deploy Manual Self Deploy Fork

Jul 5, 2022

You view the Twitch channel chat and you can access the details of the users who wrote during the viewing period.

Twitch Chat Web Page You view the Twitch channel chat and you can access the details of the users who wrote during the viewing period. Getting Started

Dec 13, 2022

Automatic Role Adder Is Usually Used In Coding Servers Which Give Access To Codes By Subbing To Their Channel So This Helps Them To Auto Role People :)

Automatic Role Adder Setup Guide Automatic Role Adder Is Usually Used In Coding Servers Which Give Access To Codes By Subbing To Their Channel So This

Dec 23, 2022

Use Telegram channel as a minimal database.

It's a work in progress! The TGDB Use Telegram channel as a minimal databases! 🚀 It's fast, faster than I expected it to be, and like Telegram, it's

Aug 30, 2022

A chatbot for the Deloitte CBO #under30s channel.

Harold Harold A chatbot for our favourite Slack channel at Deloitte. Explore the docs » View Demo · Report Bug · Request Feature Table of Contents Abo

Nov 3, 2022

Swaps active audio input device in OBS upon twitch chat channel point redemption.

Swaps active audio input device in OBS upon twitch chat channel point redemption.

OBS-Mic-Swapper Shortcuts Set up Program Description Example of Functionality FAQ Contact Info Set up Create an account on Twitch for your bot Make su

Nov 8, 2022

Trying 5 Redux Alternatives (Zustand, Recoil, Jotai, Rematch and Redux-Toolkit). Expalined on CoderOne Ytb channel

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

Oct 3, 2022
Comments
  • Build fails on Netlify

    Build fails on Netlify

    Hi there,

    I've tested the "One Click deploy to Netlify" button from the readme and here is the result from the Netlify build logs:

    6:51:11 PM: $ yarn build
    6:51:11 PM: yarn run v1.22.10
    6:51:11 PM: $ keystone prisma migrate deploy && next build
    6:51:15 PM: Prisma schema loaded from schema.prisma
    6:51:15 PM: Error: Get config: Schema Parsing P1012
    6:51:15 PM: 
    6:51:15 PM: error: Environment variable not found: DATABASE_URL.
    6:51:15 PM:   -->  schema.prisma:5
    6:51:15 PM:    |
    6:51:15 PM:  4 | datasource postgresql {
    6:51:15 PM:  5 |   url               = env("DATABASE_URL")
    6:51:15 PM:    |
    6:51:15 PM: Validation Error Count: 1
    6:51:15 PM: error Command failed with exit code 1. (https://ntl.fyi/exit-code-1)
    

    Here is the full report; OTH:

    6:50:11 PM: Build ready to start
    6:50:12 PM: build-image version: d7b3dbfb0846505993c9a131894d1858074c90b4 (focal)
    6:50:12 PM: build-image tag: v4.10.1
    6:50:12 PM: buildbot version: 67e75f1ba713a8213d4b5a8ccf9708af751e2390
    6:50:12 PM: Fetching cached dependencies
    6:50:13 PM: Failed to fetch cache, continuing with build
    6:50:13 PM: Starting to prepare the repo for build
    6:50:13 PM: No cached dependencies found. Cloning fresh repo
    6:50:13 PM: git clone https://github.com/openshiporg/openship
    6:50:13 PM: Preparing Git Reference refs/heads/main
    6:50:13 PM: Parsing package.json dependencies
    6:50:14 PM: Starting build script
    6:50:14 PM: Installing dependencies
    6:50:14 PM: Python version set to 2.7
    6:50:15 PM: Downloading and installing node v16.17.0...
    6:50:15 PM: Downloading https://nodejs.org/dist/v16.17.0/node-v16.17.0-linux-x64.tar.xz...
    6:50:15 PM: Computing checksum with sha256sum
    6:50:15 PM: Checksums matched!
    6:50:17 PM: Now using node v16.17.0 (npm v8.15.0)
    6:50:17 PM: Started restoring cached build plugins
    6:50:17 PM: Finished restoring cached build plugins
    6:50:17 PM: Attempting ruby version 2.7.2, read from environment
    6:50:18 PM: Using ruby version 2.7.2
    6:50:18 PM: Using PHP version 8.0
    6:50:18 PM: Started restoring cached yarn cache
    6:50:18 PM: Finished restoring cached yarn cache
    6:50:19 PM: No yarn workspaces detected
    6:50:19 PM: Started restoring cached node modules
    6:50:19 PM: Finished restoring cached node modules
    6:50:19 PM: Installing NPM modules using Yarn version 1.22.10
    6:50:19 PM: npm WARN config tmp This setting is no longer used.  npm stores temporary files in a special
    6:50:19 PM: npm WARN config location in the cache, and they are managed by
    6:50:19 PM: npm WARN config     [`cacache`](http://npm.im/cacache).
    6:50:19 PM: yarn install v1.22.10
    6:50:19 PM: [1/5] Validating package.json...
    6:50:19 PM: [2/5] Resolving packages...
    6:50:19 PM: [3/5] Fetching packages...
    6:50:37 PM: info @next/[email protected]: The platform "linux" is incompatible with this module.
    6:50:37 PM: info "@next/[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
    6:50:37 PM: info @next/[email protected]: The CPU architecture "x64" is incompatible with this module.
    6:50:37 PM: info @next/[email protected]: The platform "linux" is incompatible with this module.
    6:50:37 PM: info "@next/[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
    6:50:37 PM: info @next/[email protected]: The CPU architecture "x64" is incompatible with this module.
    6:50:37 PM: info @next/[email protected]: The platform "linux" is incompatible with this module.
    6:50:37 PM: info "@next/[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
    6:50:37 PM: info @next/[email protected]: The CPU architecture "x64" is incompatible with this module.
    6:50:37 PM: info @next/[email protected]: The platform "linux" is incompatible with this module.
    6:50:37 PM: info "@next/[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
    6:50:37 PM: info @next/[email protected]: The platform "linux" is incompatible with this module.
    6:50:37 PM: info "@next/[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
    6:50:37 PM: info @next/[email protected]: The CPU architecture "x64" is incompatible with this module.
    6:50:37 PM: info "@next/[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
    6:50:37 PM: info @next/[email protected]: The CPU architecture "x64" is incompatible with this module.
    6:50:37 PM: info "@next/[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
    6:50:37 PM: info @next/[email protected]: The CPU architecture "x64" is incompatible with this module.
    6:50:37 PM: info "@next/[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
    6:50:37 PM: info @next/[email protected]: The platform "linux" is incompatible with this module.
    6:50:37 PM: info "@next/[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
    6:50:37 PM: info @next/[email protected]: The CPU architecture "x64" is incompatible with this module.
    6:50:37 PM: info @next/[email protected]: The platform "linux" is incompatible with this module.
    6:50:37 PM: info "@next/[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
    6:50:37 PM: info @next/[email protected]: The CPU architecture "x64" is incompatible with this module.
    6:50:37 PM: info @next/[email protected]: The platform "linux" is incompatible with this module.
    6:50:37 PM: info "@next/[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
    6:50:37 PM: info [email protected]: The platform "linux" is incompatible with this module.
    6:50:37 PM: info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
    6:50:37 PM: [4/5] Linking dependencies...
    6:50:37 PM: warning "@keystone-6/auth > @keystone-ui/core > @emotion/react > @emotion/[email protected]" has unmet peer dependency "@babel/core@^7.0.0".
    6:50:37 PM: warning "@keystone-6/auth > @keystone-ui/fields > react-day-picker > @reach/[email protected]" has incorrect peer dependency "react@^16.8.0 || 17.x".
    6:50:37 PM: warning "@keystone-6/auth > @keystone-ui/fields > react-day-picker > @reach/[email protected]" has incorrect peer dependency "react-dom@^16.8.0 || 17.x".
    6:50:37 PM: warning "@keystone-6/auth > @keystone-ui/core > @emotion/react > @emotion/babel-plugin > @babel/[email protected]" has unmet peer dependency "@babel/core@^7.0.0-0".
    6:50:37 PM: warning "@keystone-6/auth > @keystone-ui/fields > react-day-picker > @reach/auto-id > @reach/[email protected]" has incorrect peer dependency "react@^16.8.0 || 17.x".
    6:50:37 PM: warning "@keystone-6/auth > @keystone-ui/fields > react-day-picker > @reach/auto-id > @reach/[email protected]" has incorrect peer dependency "react-dom@^16.8.0 || 17.x".
    6:50:37 PM: warning "@keystone-6/core > @aws-sdk/[email protected]" has unmet peer dependency "@aws-sdk/abort-controller@^3.0.0".
    6:50:37 PM: warning "@keystone-6/core > @prisma/[email protected]" has unmet peer dependency "@prisma/generator-helper@*".
    6:50:37 PM: warning "@mantine/core > @radix-ui/[email protected]" has incorrect peer dependency "react@^16.8 || ^17.0".
    6:50:37 PM: warning "@mantine/core > @radix-ui/react-scroll-area > @radix-ui/[email protected]" has incorrect peer dependency "react@^16.8 || ^17.0".
    6:50:37 PM: warning "@mantine/core > @radix-ui/react-scroll-area > @radix-ui/[email protected]" has incorrect peer dependency "react@^16.8 || ^17.0".
    6:50:37 PM: warning "@mantine/core > @radix-ui/react-scroll-area > @radix-ui/[email protected]" has incorrect peer dependency "react@^16.8 || ^17.0".
    6:50:37 PM: warning "@mantine/core > @radix-ui/react-scroll-area > @radix-ui/[email protected]" has incorrect peer dependency "react@^16.8 || ^17.0".
    6:50:37 PM: warning "@mantine/core > @radix-ui/react-scroll-area > @radix-ui/[email protected]" has incorrect peer dependency "react@^16.8 || ^17.0".
    6:50:37 PM: warning "@mantine/core > @radix-ui/react-scroll-area > @radix-ui/[email protected]" has incorrect peer dependency "react@^16.8 || ^17.0".
    6:50:37 PM: warning "@mantine/core > @radix-ui/react-scroll-area > @radix-ui/react-primitive > @radix-ui/[email protected]" has incorrect peer dependency "react@^16.8 || ^17.0".
    6:50:37 PM: warning "@mantine/next > @mantine/ssr > [email protected]" has incorrect peer dependency "[email protected] || 15 || 16 || 17".
    6:50:37 PM: warning " > [email protected]" has unmet peer dependency "graphql@14 - 16".
    6:50:37 PM: warning "next-pwa > [email protected]" has unmet peer dependency "@babel/core@^7.0.0".
    6:50:37 PM: warning "next-pwa > [email protected]" has unmet peer dependency "webpack@>=2".
    6:50:37 PM: warning "next-pwa > [email protected]" has unmet peer dependency "webpack@>=4.0.0 <6.0.0".
    6:50:37 PM: warning "next-pwa > [email protected]" has unmet peer dependency "webpack@^5.1.0".
    6:50:37 PM: warning "next-pwa > [email protected]" has unmet peer dependency "webpack@^4.4.0 || ^5.9.0".
    6:50:49 PM: [5/5] Building fresh packages...
    6:50:53 PM: $ keystone postinstall
    6:50:56 PM: ✨ GraphQL and Prisma schemas are up to date
    6:50:57 PM: Done in 38.39s.
    6:50:57 PM: NPM modules installed using Yarn
    6:50:58 PM: Started restoring cached go cache
    6:50:58 PM: Finished restoring cached go cache
    6:50:58 PM: Installing Go version 1.17 (requested 1.17)
    6:51:02 PM: unset GOOS;
    6:51:02 PM: unset GOARCH;
    6:51:02 PM: export GOROOT='/opt/buildhome/.gimme/versions/go1.17.linux.amd64';
    6:51:02 PM: export PATH="/opt/buildhome/.gimme/versions/go1.17.linux.amd64/bin:${PATH}";
    6:51:02 PM: go version >&2;
    6:51:02 PM: export GIMME_ENV="/opt/buildhome/.gimme/env/go1.17.linux.amd64.env"
    6:51:02 PM: go version go1.17 linux/amd64
    6:51:02 PM: Installing missing commands
    6:51:02 PM: Verify run directory
    6:51:03 PM: ​
    6:51:03 PM: ────────────────────────────────────────────────────────────────
    6:51:03 PM:   Netlify Build                                                 
    6:51:03 PM: ────────────────────────────────────────────────────────────────
    6:51:03 PM: ​
    6:51:03 PM: ❯ Version
    6:51:03 PM:   @netlify/build 27.16.1
    6:51:03 PM: ​
    6:51:03 PM: ❯ Flags
    6:51:03 PM:   baseRelDir: true
    6:51:03 PM:   buildId: 63123443b8121f02bbd07e5a
    6:51:03 PM:   deployId: 63123443b8121f02bbd07e5c
    6:51:03 PM: ​
    6:51:03 PM: ❯ Current directory
    6:51:03 PM:   /opt/build/repo
    6:51:03 PM: ​
    6:51:03 PM: ❯ Config file
    6:51:03 PM:   No config file was defined: using default values.
    6:51:03 PM: ​
    6:51:03 PM: ❯ Context
    6:51:03 PM:   production
    6:51:03 PM: ​
    6:51:03 PM: ❯ Installing plugins
    6:51:03 PM:    - @netlify/[email protected]
    6:51:10 PM: ​
    6:51:10 PM: ❯ Loading plugins
    6:51:10 PM:    - @netlify/[email protected] from Netlify app
    6:51:10 PM: ​
    6:51:10 PM: ────────────────────────────────────────────────────────────────
    6:51:10 PM:   1. @netlify/plugin-nextjs (onPreBuild event)                  
    6:51:10 PM: ────────────────────────────────────────────────────────────────
    6:51:10 PM: ​
    6:51:11 PM: No Next.js cache to restore.
    6:51:11 PM: Netlify configuration property "build.environment.NEXT_PRIVATE_TARGET" value changed.
    6:51:11 PM: ​
    6:51:11 PM: (@netlify/plugin-nextjs onPreBuild completed in 14ms)
    6:51:11 PM: ​
    6:51:11 PM: ────────────────────────────────────────────────────────────────
    6:51:11 PM:   2. Build command from Netlify app                             
    6:51:11 PM: ────────────────────────────────────────────────────────────────
    6:51:11 PM: ​
    6:51:11 PM: $ yarn build
    6:51:11 PM: yarn run v1.22.10
    6:51:11 PM: $ keystone prisma migrate deploy && next build
    6:51:15 PM: Prisma schema loaded from schema.prisma
    6:51:15 PM: Error: Get config: Schema Parsing P1012
    6:51:15 PM: 
    6:51:15 PM: error: Environment variable not found: DATABASE_URL.
    6:51:15 PM:   -->  schema.prisma:5
    6:51:15 PM:    |
    6:51:15 PM:  4 | datasource postgresql {
    6:51:15 PM:  5 |   url               = env("DATABASE_URL")
    6:51:15 PM:    |
    6:51:15 PM: Validation Error Count: 1
    6:51:15 PM: error Command failed with exit code 1. (https://ntl.fyi/exit-code-1)
    6:51:15 PM: info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
    6:51:15 PM: ​
    6:51:15 PM: ────────────────────────────────────────────────────────────────
    6:51:15 PM:   "build.command" failed                                        
    6:51:15 PM: ────────────────────────────────────────────────────────────────
    6:51:15 PM: ​
    6:51:15 PM:   Error message
    6:51:15 PM:   Command failed with exit code 1: yarn build (https://ntl.fyi/exit-code-1)
    6:51:15 PM: ​
    6:51:15 PM:   Error location
    6:51:15 PM:   In Build command from Netlify app:
    6:51:15 PM:   yarn build
    6:51:15 PM: ​
    6:51:15 PM:   Resolved config
    6:51:15 PM:   build:
    6:51:15 PM:     command: yarn build
    6:51:15 PM:     commandOrigin: ui
    6:51:15 PM:     environment:
    6:51:15 PM:       - NEXT_PRIVATE_TARGET
    6:51:15 PM:     publish: /opt/build/repo/.next
    6:51:15 PM:     publishOrigin: ui
    6:51:15 PM:   plugins:
    6:51:15 PM:     - inputs: {}
    6:51:15 PM:       origin: ui
    6:51:15 PM:       package: '@netlify/plugin-nextjs'
    6:51:16 PM: Caching artifacts
    6:51:16 PM: Started saving node modules
    6:51:16 PM: Finished saving node modules
    6:51:16 PM: Started saving build plugins
    6:51:16 PM: Finished saving build plugins
    6:51:16 PM: Started saving yarn cache
    6:51:20 PM: Finished saving yarn cache
    6:51:20 PM: Started saving pip cache
    6:51:20 PM: Finished saving pip cache
    6:51:20 PM: Started saving emacs cask dependencies
    6:51:20 PM: Finished saving emacs cask dependencies
    6:51:20 PM: Started saving maven dependencies
    6:51:20 PM: Finished saving maven dependencies
    6:51:20 PM: Started saving boot dependencies
    6:51:20 PM: Finished saving boot dependencies
    6:51:20 PM: Started saving rust rustup cache
    6:51:20 PM: Finished saving rust rustup cache
    6:51:20 PM: Started saving go dependencies
    6:51:20 PM: Finished saving go dependencies
    6:51:21 PM: Build failed due to a user error: Build script returned non-zero exit code: 2
    6:51:21 PM: Creating deploy upload records
    6:51:21 PM: Failing build: Failed to build site
    6:51:21 PM: Failed during stage 'building site': Build script returned non-zero exit code: 2 (https://ntl.fyi/exit-code-2)
    6:51:21 PM: Finished processing build request in 1m8.5871423s
    
    opened by RoneoOrg 2
Releases(v.2.0.0)
aka Scaletor, take screenshots of a piece of a map and scale/compare with other parts of the map

scale-a-tron A quick-and-dirty map that lets you compare one area to another. Draw a shape around a region, zoom in to another place on the map, and c

Stamen Design 24 Nov 7, 2022
🍎 A simple application which enables you to sync readings from your Withings scale to a Notion page.

weight-logger weight-logger is a simple application which enables you to sync readings from your Withings scale to a Notion page. Preview Installation

Juri Adams 2 Jan 14, 2022
A Kubernetes monitoring tool to visualize large-scale activity and real-time comprehensive metrics within your cluster.

Armada A light-weight Kubernetes health monitoring tool. Summary Armada is an open-source tool for monitoring the health of your Kubernetes cluster. I

OSLabs Beta 81 Nov 2, 2022
College project done for the CG Artwork lecture in 2022. Used HTML for the indexes and mainly JavaScript (using to THREE.js). Ended with the final A grade (17.3 in scale grade).

CG Artwork Project 2022 This project was done by a group of 3 in 2022 with an educational purpose for the CG Artwork lecture in Instituto Superior Téc

filipe_neves 3 Sep 19, 2022
A large scale simulation which pits millions of space ships against each other in a virtual universe all running directly in SingleStore.

Wasm Space Program In this demo we simulate a fake universe full of thousands of solar systems. In each solar system there are many space ships and en

SingleStore Labs 11 Nov 2, 2022
Dump of a 5 day small scale data scraping project on the io game "arras.io"

Arras DB A bot built to scan all arras.io game servers (besides sandbox) in search of bulk server and player data. This bot was run 5 days straight, a

ABC 3 Jul 19, 2022
T3 is a client-side JavaScript framework for building large-scale web applications

Box has migrated using react, webpack, and the latest version of ECMAScript for our frontend projects as of 2018. We no longer support chan

Box 1.6k Dec 8, 2022
Web Scale™ Anarchy SponsorBlock Server

Web Scale SponsorBlock Server Joke Fork of ajayyy/SponsorBlockServer Now backed by Web Scale MangoDB (thanks @grub for the native nc port) Now with no

Michael M. Chang 6 Sep 28, 2022
🗃️ An in-memory JS database optimized for large scale storage on the frontend.

BlinkDB is a in-memory JS database optimized for large scale storage on the frontend. import { many } from 'blinkdb'; const items = await many(userTa

BlinkDB 64 Dec 23, 2022
A refined tool for exploring open-source projects on GitHub with a file tree, rich Markdown and image previews, multi-pane multi-tab layouts and first-class support for Ink syntax highlighting.

Ink codebase browser, "Kin" ?? The Ink codebase browser is a tool to explore open-source code on GitHub, especially my side projects written in the In

Linus Lee 20 Oct 30, 2022