Skip to content

Latest commit

 

History

History
163 lines (107 loc) · 4.81 KB

README.md

File metadata and controls

163 lines (107 loc) · 4.81 KB

License: AGPL

WebsiteTwitter

⚡ The AppFlowy Cloud written with Rust 🦀

Documented process

  1. get vps + domain with ssl + get second ssl to plug into vps + openai api key + mailgun acc (domain dns config -> vps and mailgun)
  2. created user with sudo powed - logged in with user
  3. git cloned /AppFlowy-Cloud
  4. installed nginx, docker engine (/etc/nginx/sites-enabled/default deleted)
  5. edited deploy.env, docker-compose.yml and /migrations/before/20230312043000_supabase_auth.sql (changed passes, smtp mailgun, google oauth, auto-confirm off, openai api, disabled built-in nginx and unused admin servs such as portainer)
  6. configured /etc/nginx/nginx.conf with xternal-nginx.conf
  7. cd /AppFlowy-Cloud / cp deploy.env .env / docker compose up -d
  8. created /home/user/appflowy_backups folder
  9. created backup scripts for postgres and minio in /script/
  10. modified docker-compose.yml to include the volume and add the backup service

Issues currently facing

  1. smtp won't send any mails

Improvements I'm aiming

  1. currently working on deploying an element synapse on the same vps/domain/nginx.conf
  2. security - priority
  3. have a small ai model to do simple tasks based on lists/notes (eg. combine all the ingredients from @recipe1 @recipe2 and @recipe3 into a single shopping list) - either on-clients-device or something like ollama hosted on another server
  4. syncing between user seems a liiiiiiiitle clunky sometimes. can we improve?

Things I have yet to understand

  1. is it worth to create an outside postgres db? //after a little documentation on my own, i don't think so. very likely to be wrong

📦📦📦📦📦📦📦📦📦📦📦📦📦📦📦📦📦📦📦📦📦📦📦

AppFlowy Cloud

AppFlowy Cloud is part of the AppFlowy ecosystem, offering secure user authentication, file storage, and real-time WebSocket communication for an efficient and collaborative user experience.

Table of Contents

🚀 Deployment

💻 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 with all dependencies

./script/run_local_server.sh

This process will execute all the dependencies and start the AppFlowy-Cloud server. Alternatively, you have the option to run the AppFlowy-Cloud server independently

Run the AppFlowy-Cloud

  1. Run the dependency servers
docker compose --file docker-compose-dev.yml up -d
  1. Install sqlx-cli
cargo install sqlx-cli
  1. Run sqlx migration
sqlx database create
sqlx migrate run
cargo sqlx prepare --workspace
  1. Run the server
cargo run

Run the tests

After the server is running, you can run the tests with:

cargo test

🐞Debugging

Effective debugging is essential for maintaining a healthy application. Here are some tools and commands to help you troubleshoot issues in various components of the AppFlowy cloud server:

Postgres

A web-based administration tool for PostgreSQL. Access it at PgAdmin

  • OR command line:
    export PGPASSWORD=password
    psql --host=localhost --username=postgres --port=5432
  • Redis

Redis offers a powerful command line interface for managing your Redis instance. Connect using the following command:

    redis-cli -p 6379

Minio

Minio provides a Web UI for easy management of your files and buckets. Access it at Web UI

Portainer

For managing Docker containers, Portainer's Web UI is an excellent tool. Access it at Web UI to easily manage Docker environments, including container deployment, networking, volume management, and more. Access it at Web UI

⚙️ Contributing

Any new contribution is more than welcome in this project! If you want to know more about the development workflow or want to contribute, please visit our contributing guidelines for detailed instructions!