Skip to content

Latest commit

 

History

History
90 lines (67 loc) · 4.19 KB

README.md

File metadata and controls

90 lines (67 loc) · 4.19 KB

KLine

Netlify Status

What is it?

Code Generated GraphQL Kotlin Server with Apollo React Front End

Examples

Easy Development

Start developing with ./kline.sh start; this brings up a database (postgres), starts the React dev server (includes live updates), starts a Kotlin Server (after running Database Migrations), all behind an nginx proxy.

Backend

Frontend

Honorable Mentions

Docker and Docker Compose

Stop worrying about cross platform dependencies with Docker, easily run it with Docker Compose.

Docker

  • Build once, run everywhere

Docker Compose

  • Run everything on one machine

NGINX

  • Creates a proxy so that it seems like backend and frontend are running on the same server
  • nginx.conf

Easy Deployment

No matter how you want to run your app it should be easy. This project includes Docker Images to simplify deployment of server and frontend, as well as build scripts to run without Docker.

Backend

The Docker Image is ready to run, just needs a DATABASE_URL set as an environment variable. Running without Docker is easy too, same rules apply.

  • Create new project: heroku create [<name>]
  • Push only the server: git subtree push --prefix api heroku master

Frontend

The Docker Image from Dockerfile.live is the live/production version, just needs a GRAPHQL_URL. Running without Docker is easy too.

  • Create New Project (connect to Github)
  • Build Command: cd web && npm install && npm run build
  • Publish Directory: web/build
  • Create new project: heroku create [<name>]
  • Push only the frontend: git subtree push --prefix web heroku master

What isn't it?

Authenticated

Check out KLine Auth

Mobile or Desktop App

While it wouldn't be too hard to add a base Mobile App (React Native) or Desktop App (Tornado FX, Proton Native), not every website needs those. This project is primarily focused on web apps with a database.

Why KLine?

This project is inspired by Rails, K Line is actually a Japanese shipping company. That's the goal of this project, ship it!