graphile / graphile/graphile.github.io

Document How to Run in Azure VM

Aperta
#241 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
SCSS
Stelle
27
Fork
126
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

### Feature description

Document how to run in Azure on a VM.

### Motivating example

I wanted to host in Azure and followed the steps below.

---

## Steps that enabled me to host in an Azure VM:

Using Graphile over PostgreSQL 12

Created Ubuntu 20.04 Gen1 VM in Azure using static IP address

### Connect using OSX Terminal SSH command

Launchpad
Terminal

```bash
ssh {vm_username}@{ip_address}
```

### Create database user

```bash
sudo adduser {database_username}
```

### Install PostgreSQL

```bash
sudo apt-get update
sudo apt-get install postgresql-12
```

```sql
CREATE ROLE {datebase_username} WITH LOGIN CREATEDB ENCRYPTED PASSWORD '{database_user_password}';
CREATE DATABASE {database_name};
GRANT ALL PRIVILEGES ON DATABASE {database_name} to {database_username};
\q
```

```bash
su {database_username}
psql -d {database_name}
```

```sql
CREATE TABLE testtable(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL
);
\d

psql "postgres://{database_username}:{database_user_password}@localhost/{database_name}"
```

**Note**: connection strings require URL encoding.

Steps above were adapted from https://tecadmin.net/install-postgresql-server-on-ubuntu/

### PostgreSQL Adding GUID (UUID) Support:

```bash
sudo su postgres
psql {database_name}
```

```sql
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
SELECT uuid_generate_v4();
```

Steps above were adapted from https://www.postgresqltutorial.com/postgresql-uuid/#:~:text=The%20Basics%20Of%20PostgreSQL%20UUID,table%20with%20UUID%20column.

### Install NPM

```bash
sudo apt install npm
```

### Install Yarn

```bash
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update && sudo apt install yarn
```

### Install PostGraphile

```bash
yarn add postgraphile
```

### Install Optional Plugins

```bash
yarn add @graphile-contrib/pg-simplify-inflector
```

### Start Graphile with:

```bash
npx postgraphile \
--subscriptions \
--watch \
--dynamic-json \
--no-setof-functions-contain-nulls \
--no-ignore-rbac \
--no-ignore-indexes \
--show-error-stack=json \
--extended-errors hint,detail,errcode \
--append-plugins @graphile-contrib/pg-simplify-inflector \
--export-schema-graphql schema.graphql \
--graphiql "/graphiql" \
--enhance-graphiql \
--allow-explain \
--enable-query-batching \
--legacy-relations omit \
--connection postgres://{database_username}:{database_user_password}@localhost/{database_name} \
--owner-connection postgres://postgres:{postgress_password}@localhost/{database_name} \
--schema public \
--host 0.0.0.0
```

Documentation: CLI Usage: https://www.graphile.org/postgraphile/usage-cli/

**Note**: By default only localhost works but the --host 0.0.0.0 argument enables access from outside the server.

**Note**: sudo tcpdump port 5000 can be used to debug network issues to determine if traffic is hitting the server.

### Verify Server is Working:

```bash
curl http://{vm_ip_address}:5000/graphiql
```

### Disconnect Graphile execution from SSH window:

```bash
# Press
bg
disown -h
```

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.