graphile / graphile/graphile.github.io
Document How to Run in Azure VM
- Lenguaje dominante
- SCSS
- Estrellas
- 27
- Forks
- 126
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
### 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
```
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Línea de trabajo
No se nombra ningún archivo de documentación de destino. Empieza por encontrar la documentación existente del proyecto sobre deployment o hosting y, a continuación, compara sus convenciones con los pasos de Azure VM de este issue. Se considera terminado cuando una guía mantenible de Azure VM cubre PostgreSQL, el inicio de PostGraphile, el acceso externo, la verificación y la desconexión del proceso.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- azure, node.js, postgresql, shell, ubuntu
- Área
- cloud, databases, documentation, infrastructure
- Tipo de issue
- Documentación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100