graphile / graphile/graphile.github.io

Document How to Run in Azure VM

Ouverte
#241 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
SCSS
Étoiles
27
Forks
126
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

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

ssh {vm_username}@{ip_address}
Create database user
sudo adduser {database_username}
Install PostgreSQL
sudo apt-get update
sudo apt-get install postgresql-12
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
su {database_username}
psql -d {database_name}
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:
sudo su postgres
psql {database_name}
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
sudo apt install npm
Install Yarn
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
yarn add postgraphile
Install Optional Plugins
yarn add @graphile-contrib/pg-simplify-inflector
Start Graphile with:
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:
curl http://{vm_ip_address}:5000/graphiql
Disconnect Graphile execution from SSH window:
# Press <ctrl+z>
bg
disown -h

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Aucun fichier de documentation cible n’est nommé. Commencez par trouver la documentation existante du projet concernant le déploiement ou l’hébergement, puis comparez ses conventions avec les étapes Azure VM de cette issue. Le travail est terminé lorsqu’un guide maintenable pour Azure VM couvre PostgreSQL, le démarrage de PostGraphile, l’accès externe, la vérification et la déconnexion du processus.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
azure, node.js, postgresql, shell, ubuntu
Domaine
cloud, databases, documentation, infrastructure
Type d'issue
Documentation
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.