* feat: s3 minio wip * feat: s3 minio bucket create idempotent * feat: put storage setting into configurations * chore: clippy lint * feat: add setting to base config * feat: add configuration for prod * fix: allow use different minio host |
||
|---|---|---|
| .github | ||
| .sqlx | ||
| build | ||
| cert | ||
| configuration | ||
| docker | ||
| libs | ||
| migrations | ||
| nginx | ||
| src | ||
| tests | ||
| .dockerignore | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| Dockerfile | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
| dev.env | ||
| docker-compose-dev.yml | ||
| docker-compose.yml | ||
| rustfmt.toml | ||
README.md
AppFlowy Cloud
- Cloud Server for AppFlowy
Deployment
Environmental Variables before starting
- you can set it explicitly(below) or in a
.envfile (usedev.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.crtandprivate_key.keywith your own innginx/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.envto.env - edit the
.envas 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
.envfile, else some test may fail - You may register the email defined in
.envby 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