graphile / graphile/graphile.github.io
Document How to Run in Azure VM
- 主要言語
- SCSS
- スター
- 27
- フォーク
- 126
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
### 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
```
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
調査の方向性
対象となるドキュメントファイルは指定されていません。まず、プロジェクトに既存するデプロイまたはホスティングのドキュメントを見つけ、その規約をこの issue の Azure VM の手順と比較してください。Azure VM の保守しやすいガイドが、PostgreSQL、PostGraphile の起動、外部アクセス、検証、プロセスの切断を網羅していれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- azure, node.js, postgresql, shell, ubuntu
- 領域
- cloud, databases, documentation, infrastructure
- issue の種類
- ドキュメント
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 35/100