Go to file
Zack df9c71edb2
feat: returns if user is new for both oauth and password login (#67)
* feat: returns if user is new for both oauth and password login

* test: add test for firt time sign_in and subsequent

* chore: remove uneeded use

* fix: compile

---------

Co-authored-by: nathan <nathan@appflowy.io>
2023-09-21 14:05:25 +08:00
.github feat: returns if user is new for both oauth and password login (#67) 2023-09-21 14:05:25 +08:00
.sqlx feat: returns if user is new for both oauth and password login (#67) 2023-09-21 14:05:25 +08:00
build feat: returns if user is new for both oauth and password login (#67) 2023-09-21 14:05:25 +08:00
cert fix: request fail caused by certificate issue 2023-03-15 09:32:23 +08:00
configuration feat: Integrate to client (#52) 2023-09-17 12:52:44 +08:00
docker feat: Autorefresh (#44) 2023-09-15 11:21:05 +08:00
libs feat: returns if user is new for both oauth and password login (#67) 2023-09-21 14:05:25 +08:00
migrations feat: implement snapshot handler (#38) 2023-09-13 15:25:51 +08:00
nginx fix: add authorize for gotrue 2023-09-18 20:57:36 +08:00
src feat: returns if user is new for both oauth and password login (#67) 2023-09-21 14:05:25 +08:00
tests feat: returns if user is new for both oauth and password login (#67) 2023-09-21 14:05:25 +08:00
.dockerignore feat: use apply server migration when server starts (#30) 2023-09-12 15:12:08 +08:00
.gitignore refactor: save collab data in pg (#19) 2023-09-08 19:41:35 +08:00
Cargo.lock refactor: ws ping (#66) 2023-09-20 20:53:39 +08:00
Cargo.toml feat: Workspace members (#63) 2023-09-19 20:59:16 +08:00
Dockerfile feat: Autorefresh (#44) 2023-09-15 11:21:05 +08:00
LICENSE chore: add license 2023-07-28 21:05:27 +08:00
Makefile chore: remove redundant sqlx command (#22) 2023-09-08 22:51:16 +08:00
README.md feat: Workspace members (#63) 2023-09-19 20:59:16 +08:00
dev.env feat: returns if user is new for both oauth and password login (#67) 2023-09-21 14:05:25 +08:00
docker-compose-dev.yml feat: Workspace members (#63) 2023-09-19 20:59:16 +08:00
docker-compose.yml feat: nginx reroute callback and verify 2023-09-18 20:49:54 +08:00
rustfmt.toml feat: ws connect (#3) 2023-05-08 19:03:50 +08:00

README.md

AppFlowy Cloud

  • Cloud Server for AppFlowy

Deployment

Environmental Variables before starting

  • you can set it explicitly(below) or in a .env file (use dev.env) as template
# authentication key, change this and keep the key safe and secret
GOTRUE_JWT_SECRET=secret_auth_pass

# enabled by default, if you dont want need email confirmation, set to false
GOTRUE_MAILER_AUTOCONFIRM=true

# if you enable mail confirmation, you need to set the SMTP configuration below
GOTRUE_SMTP_HOST=smtp.gmail.com
GOTRUE_SMTP_PORT=465
GOTRUE_SMTP_USER=email_sender@some_company.com
GOTRUE_SMTP_PASS=email_sender_password
GOTRUE_SMTP_ADMIN_EMAIL=comp_admin@@some_company.com

# Change 'localhost:9998' to the public host of machine that is running on.
# This is for email confirmation link
API_EXTERNAL_URL=http://localhost:9998

# Enable Google OAuth2, default: false, quick link for set up:
# https://console.cloud.google.com/apis/credentials
# https://console.cloud.google.com/apis/credentials/consent
GOTRUE_EXTERNAL_GOOGLE_ENABLED=false
GOTRUE_EXTERNAL_GOOGLE_CLIENT_ID=some_id
GOTRUE_EXTERNAL_GOOGLE_SECRET=some_secret
# Change 'localhost:9998' to the public host of machine that is running on.
GOTRUE_EXTERNAL_GOOGLE_REDIRECT_URI=http://localhost:9998/callback
  • additional settings can be modified in docker-compose.yml

SSL Certificate

  • To use your own SSL, replace certificate.crt and private_key.key with your own in nginx/ssl/ directory

Start Cloud Server

docker-compose up -d

Ports

Host Server is required to expose the following Ports:

  • 443 (https)
  • 80 (http)

Local Development

Pre-requisites

You'll need to install:

Configuration

  • copy the configurations from dev.env to .env
  • edit the .env as required (such as SMTP configurations)

Run the dependency servers

docker-compose --file docker-compose-dev.yml up -d

Install sqlx-cli

cargo install sqlx-cli

Run sqlx migration

sqlx database create
sqlx migrate run

Run the AppFlowy-Cloud server

cargo run

Run the tests

Verified user

  • Make sure you have registered a user and put into your .env file, else some test may fail
  • You may register the email defined in .env by running the following command, you may then click on the link sent to that email to complete registration
source .env
curl localhost:9998/signup \
    --data-raw '{"email":"'"$GOTRUE_REGISTERED_EMAIL"'","password":"'"$GOTRUE_REGISTERED_PASSWORD"'"}' \
    --header 'Content-Type: application/json'
  • Verify registration, you should get a token after running the command below:
source .env
curl localhost:9998/token?grant_type=password \
    --data-raw '{"email":"'"$GOTRUE_REGISTERED_EMAIL"'","password":"'"$GOTRUE_REGISTERED_PASSWORD"'"}' \
    --header 'Content-Type: application/json'

Test

cargo test

Debugging

  • Postgres
    export PGPASSWORD=password
    psql --host=localhost --username=postgres --port=5433
  • Redis
    redis-cli -p 6380