|
|
@@ -1,5 +1,27 @@
|
|
|
+> **Note:** if you run into any issues at all, don't hesitate to reach out on the **#contributing** channel in [Discord](https://discord.gg/GJynMR3KXK)!
|
|
|
+
|
|
|
+### Table of Contents
|
|
|
+
|
|
|
+- [Getting Started](#getting-started)
|
|
|
+ - [Makefile Quickstart](#makefile-quickstart)
|
|
|
+ - [Docker Quickstart](#docker-quickstart)
|
|
|
+ - [Getting PostgreSQL Access](#getting-postgresql-access)
|
|
|
+- [Project and Cluster Setup](#project-and-cluster-setup)
|
|
|
+ - [Setting up a Cluster](#setting-up-a-cluster)
|
|
|
+ - [Minikube on MacOS](#minikube-on-macos)
|
|
|
+- [Setup for WSL](#setup-for-wsl)
|
|
|
+- [Secure Localhost Setup](#secure-localhost-setup)
|
|
|
+
|
|
|
# Getting Started
|
|
|
|
|
|
+## Makefile Quickstart
|
|
|
+
|
|
|
+> Prequisites: [Go 1.15+](https://golang.org/doc/install) installed and [Node.js/npm](https://nodejs.org/en/download/) installed.
|
|
|
+
|
|
|
+If working under a bash environment, the easiest way to get started is by running `make start-dev`. This will verify that `go`, `npm` and `node` are found in your path, and will start a development server on `localhost:8081` with live reloading set up for both the backend and frontend. After the services are running successfully, go to [project and cluster setup](#project-and-cluster-setup) to complete the set up.
|
|
|
+
|
|
|
+## Docker Quickstart
|
|
|
+
|
|
|
After forking and cloning the repo, you should save two `.env` files in the repo.
|
|
|
|
|
|
First, in `/dashboard/.env`:
|
|
|
@@ -22,59 +44,41 @@ DB_NAME=porter
|
|
|
SQL_LITE=false
|
|
|
```
|
|
|
|
|
|
-Once you've done this, go to the root repository, and run `docker-compose -f docker-compose.dev.yaml up`. You should see postgres, webpack, and porter containers spin up. When the webpack and porter containers have finished compiling and have spun up successfully (this will take 5-10 minutes after the containers start), you can navigate to `localhost:8080` and you should be greeted with the "Log In" screen. Create a user by entering an email/password on the "Register" screen.
|
|
|
+Once you've done this, go to the root repository, and run `docker-compose -f docker-compose.dev.yaml up`. You should see postgres, webpack, and porter containers spin up. When the webpack and porter containers have finished compiling and have spun up successfully (this will take 5-10 minutes after the containers start), .
|
|
|
|
|
|
At this point, you can make a change to any `.go` file to trigger a backend rebuild, and any file in `/dashboard/src` to trigger a hot reload.
|
|
|
|
|
|
-## Setup without docker
|
|
|
-
|
|
|
-While docker is an awesome way of getting started as it simulates the real environment that we use on our hosted dashboard, for some people this may bee too much.
|
|
|
-
|
|
|
-In order to decrease the complexity of all the environment, you can just run the development environment locally without docker.
|
|
|
-
|
|
|
-After cloning the repo you should only execute `make start-dev` this will ask you to install the dependencies and also run the server and the frontend in a single console.
|
|
|
-It will also create some env files with default values that will simplify the process!
|
|
|
-
|
|
|
-### Disclaimer
|
|
|
-
|
|
|
-For the command `make start-dev` to work, you should be working under a bash environment (WSL on windows, Linux or MacOS), also you will need go, node and npm installed
|
|
|
-for it to work.
|
|
|
-
|
|
|
-### Disclaimer
|
|
|
+### Getting PostgreSQL Access
|
|
|
|
|
|
-This environment is experimental, if you run into any issue don't doubt in contact us through our [discord!](https://discord.gg/GJynMR3KXK)
|
|
|
-
|
|
|
-## Getting PostgreSQL Access
|
|
|
-
|
|
|
-You can get `psql` access by running the following:
|
|
|
+The `docker-compose` command automatically starts a PostgreSQL instance on port 5400. You can get `psql` access by running the following:
|
|
|
|
|
|
`psql --host localhost --port 5400 --username porter --dbname porter -W`
|
|
|
|
|
|
This will prompt you for a password. Enter `porter`, and you should see the `psql` shell!
|
|
|
|
|
|
-### Setting your email to be verified
|
|
|
-
|
|
|
-If you are getting blocked out of the dashboard because your email is not verified (fixed in `v0.6.2` of Porter, so make sure you've pulled from `master` recently), you can update your email in the database to `verified":
|
|
|
+# Project and Cluster Setup
|
|
|
|
|
|
-`UPDATE users SET email_verified='t' WHERE id=1;`
|
|
|
+After the project has spun up, you can navigate to `localhost:8081` (for `make` quickstart) or `localhost:8080` (for `docker-compose` quickstart) and you should be greeted with the "Log In" screen. Create a user by entering an email/password on the "Register" screen.
|
|
|
|
|
|
-## Setting up Minikube
|
|
|
+## Setting up a Cluster
|
|
|
|
|
|
These steps will help you get set up with a minikube cluster that can be used for development. Prerequisities:
|
|
|
|
|
|
- `kubectl` installed locally
|
|
|
- Development instance of Porter is running
|
|
|
+- Download the [Porter CLI](https://docs.porter.run/docs/cli-documentation#installation) or build it using `make build-cli`
|
|
|
|
|
|
-Following the OS-specific steps to get minikube running:
|
|
|
+At the moment, we only have instructions for setting up [Minikube on MacOS](#minikube-on-macos). However, Porter is compatible with most Kubernetes clusters, as long as the server is reachable from your host network. To connect a cluster that is currently accessible via `kubectl`, you can run the following steps:
|
|
|
|
|
|
-- [MacOS](#macos)
|
|
|
-- [Linux](#linux)
|
|
|
+1. `porter config set-host http://localhost:8080` (for `docker-compose` quickstart) or `porter config set-host http://localhost:8081` (for `make` quickstart).
|
|
|
+2. `porter auth login`
|
|
|
+3. `porter connect kubeconfig`
|
|
|
|
|
|
If you now navigate to `http://localhost:8080`, you should see the minikube cluster attached! There will be some limitations:
|
|
|
|
|
|
-- **It is not possible to expose a service that you create. Whenever you create a web service, de-select the "Expose to external traffic" option.**
|
|
|
+- **When you launch a web application, it is not possible to expose a service that you create. Whenever you create a web service, de-select the "Expose to external traffic" option.**
|
|
|
|
|
|
-### MacOS
|
|
|
+### Minikube on MacOS
|
|
|
|
|
|
1. [Install minikube](https://minikube.sigs.k8s.io/docs/start/), and install the `hyperkit` driver. The easiest way to do this is via:
|
|
|
|
|
|
@@ -102,23 +106,26 @@ porter auth login
|
|
|
porter connect kubeconfig
|
|
|
```
|
|
|
|
|
|
-## Setup for WSL
|
|
|
+## Setting your email to be verified
|
|
|
+
|
|
|
+If you are getting blocked out of the dashboard because your email is not verified (fixed in `v0.6.2` of Porter, so make sure you've pulled from `master` recently), you can update your email in the database to `verified":
|
|
|
+
|
|
|
+`UPDATE users SET email_verified='t' WHERE id=1;`
|
|
|
|
|
|
-Follow the steps to install WSL on Windows here https://docs.microsoft.com/en-us/windows/wsl/install-win10
|
|
|
+# Setup for WSL
|
|
|
|
|
|
-### Requirements
|
|
|
+Follow the steps to install WSL on Windows here: https://docs.microsoft.com/en-us/windows/wsl/install-win10
|
|
|
|
|
|
-`sudo apt install xdg-utils` <br/>
|
|
|
-`sudo apt install postgresql`
|
|
|
+```sh
|
|
|
+sudo apt install xdg-utils
|
|
|
+sudo apt install postgresql
|
|
|
+```
|
|
|
|
|
|
-### Setup Process
|
|
|
+Once WSL is installed, head to Docker Desktop and enable WSL Integration.
|
|
|
|
|
|
-Once WSL is installed, head to docker and enable WSL Integration.
|
|
|

|
|
|
|
|
|
-Next, continue with the Getting Started Section
|
|
|
-
|
|
|
-## Secure Localhost Setup
|
|
|
+# Secure Localhost Setup
|
|
|
|
|
|
Sometimes, it may be necessary to serve securely over `https://localhost` (for example, required by Slack integrations). Run the following command from the repository root:
|
|
|
|