graphile / graphile/graphile.github.io
Document How to Run in Azure VM
- Vorherrschende Sprache
- SCSS
- Sterne
- 27
- Forks
- 126
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
### 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
```
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
No target documentation file is named. Start by finding the project's existing deployment or hosting documentation, then compare its conventions with the Azure VM steps in this issue. Done means a maintainable Azure VM guide covers PostgreSQL, PostGraphile startup, external access, verification, and disconnecting the process.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- azure, node.js, postgresql, shell, ubuntu
- Bereich
- cloud, databases, documentation, infrastructure
- Issue-Typ
- Dokumentation
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100