Git Product home page Git Product logo

lite's Introduction

Update (2022-09-15): This repo is still a work in progress - community contribution is encouraged!


Appwrite Logo

A complete backend solution for your [Flutter / Vue / Angular / React / iOS / Android / *ANY OTHER*] app

Discord Docker Pulls Build Status Twitter Account Follow Appwrite on StackShare

Appwrite lite is the stripped down, single container version of Appwrite, with non essential services removed. Optimized for low resource systems.

Table of Contents:

What's different

Appwrite lite is simpler and light weight version. So we have removed few functionalities and made some fundamental changes as follows.

  1. All the services are running inside a single container using supervisord.
  2. Services like ClamAV antivirus and InfluxDB and Telegraf for usage stats have been removed. ClamAV has been removed as it consumes loads of memory and CPU. InfluxDB and Telegraf has been removed because of the complication of integrating these services when targetting deployment systems like Heroku and similar apps platforms.

In case of features, all the features of Appwrite is present except for usage stats and Antivirus.

Who is it good for?

For those of you who wants minimal version of Appwrite that can be run on low res system and those who do not care about usage stats can use Appwrite-lite. Anyone who doesn't allow public to upload files to storage, so are confident that any files downloaded from storage are proper, secure files and doesn't require antivirus to protect their end users can also use this version of Appwrite-lite. Also those who want to deploy Appwrite to platforms like Heroku or Digitalocean Apps platform and other similar platforms can also use Appwrite-lite.

Installation

Appwritelite is simpler version of Appwrite.io. Running your server is as easy as running one command from your terminal.

Create a new folder

Create a new folder, appwrite-lite or whatever you want to call it. And inside that folder continue creating following files.

Create a docker-compose.yml file

version: '3'

services:  
  appwrite-lite:
    image: appwrite/appwrite-lite
    container_name: appwrite-lite
    restart: unless-stopped
    ports: 
      - 80:80
    networks:
      - appwrite-lite
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - appwrite-lite-uploads:/storage/uploads:rw
      - appwrite-lite-cache:/storage/cache:rw
      - appwrite-lite-config:/storage/config:rw
      - appwrite-lite-functions:/storage/functions:rw
      - appwrite-lite-redis:/data:rw
    depends_on:
      - mariadb
    environment:
      - _APP_ENV
      - _APP_SYSTEM_EMAIL_NAME
      - _APP_SYSTEM_EMAIL_ADDRESS
      - _APP_SYSTEM_SECURITY_EMAIL_ADDRESS
      - _APP_OPTIONS_ABUSE
      - _APP_OPTIONS_FORCE_HTTPS
      - _APP_OPENSSL_KEY_V1
      - _APP_DOMAIN
      - _APP_DOMAIN_TARGET
      - _APP_DB_HOST
      - _APP_DB_PORT
      - _APP_DB_SCHEMA
      - _APP_DB_USER
      - _APP_DB_PASS
      - _APP_SMTP_HOST
      - _APP_SMTP_PORT
      - _APP_SMTP_SECURE
      - _APP_SMTP_USERNAME
      - _APP_SMTP_PASSWORD
      - _APP_STORAGE_LIMIT
      - _APP_FUNCTIONS_TIMEOUT
      - _APP_FUNCTIONS_CONTAINERS
      - _APP_FUNCTIONS_CPUS
      - _APP_FUNCTIONS_MEMORY
      - _APP_FUNCTIONS_MEMORY_SWAP

  mariadb:
    image: appwrite/mariadb:1.2.0
    container_name: appwrite-lite-mariadb
    restart: unless-stopped
    networks:
      - appwrite-lite
    volumes:
      - appwrite-lite-mariadb:/var/lib/mysql:rw
    environment:
      - MYSQL_ROOT_PASSWORD=password
      - MYSQL_DATABASE=${_APP_DB_SCHEMA}
      - MYSQL_USER=${_APP_DB_USER}
      - MYSQL_PASSWORD=${_APP_DB_PASS}
    command: 'mysqld --innodb-flush-method=fsync'
  

networks:
  appwrite-lite:

volumes:
  appwrite-lite-mariadb:
  appwrite-lite-redis:
  appwrite-lite-cache:
  appwrite-lite-uploads:
  appwrite-lite-functions:
  appwrite-lite-config:

Then create .env file with the environment settings. Update appropriate configurations

_APP_ENV=development
_APP_SYSTEM_EMAIL_NAME=Appwritelite
[email protected]
[email protected]
_APP_OPTIONS_ABUSE=disabled
_APP_OPTIONS_FORCE_HTTPS=disabled
_APP_OPENSSL_KEY_V1=your-secret-key
_APP_DOMAIN=demo.appwrite.io
_APP_DOMAIN_TARGET=demo.appwrite.io
_APP_DB_HOST=mariadb
_APP_DB_PORT=3306
_APP_DB_SCHEMA=appwrite
_APP_DB_USER=user
_APP_DB_PASS=password
_APP_SMTP_HOST=
_APP_SMTP_PORT=
_APP_SMTP_SECURE=
_APP_SMTP_USERNAME=
_APP_SMTP_PASSWORD=
_APP_STORAGE_LIMIT=10000000
_APP_FUNCTIONS_TIMEOUT=900
_APP_FUNCTIONS_CONTAINERS=10
_APP_FUNCTIONS_CPUS=1
_APP_FUNCTIONS_MEMORY=128
_APP_FUNCTIONS_MEMORY_SWAP=128
_APP_MAINTENANCE_INTERVAL=86400
_APP_SYSTEM_RESPONSE_FORMAT=

Fire up Appwrite lite server

Now you can fire up the server simply by running

docker-compose up -d

Getting Started

Checkout the Getting Started section in Appwrite.

Viewing Logs

To view the list of all the log files available, run the following command.

docker-compose exec appwrite-lite ls /var/log

To view intdividual log files, run the following command

docker-compose exec appwrite-lite cat /var/log/<log-file-name>.log

lite's People

Contributors

christyjacob4 avatar eldadfux avatar lohanidamodar avatar snehaa1989 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lite's Issues

Upgrade our issue templates to use GitHub issue forms ✍️

Introduction

GitHub has recently rolled out a public beta for their issue forms feature. This would allow you to create interactive issue templates and validate them 🤯.

Appwrite currently uses the older issue template format. Your task is to create GitHub issue forms for this repository. Please use Appwrite's issue templates as a reference for this PR.

Tasks summary:

  • Fork & clone this repository
  • Prepare bug report issue form in .github/ISSUE_TEMPLATE/bug.yaml
  • Prepare documentation issue form in .github/ISSUE_TEMPLATE/documentation.yaml
  • Prepare feature request issue form in .github/ISSUE_TEMPLATE/feature.yaml
  • Push changes to master and test issue forms on your fork
  • Submit pull request

If you need any help, reach out to us on our Discord server.

Are you ready to work on this issue? 🤔 Let us know, and we will assign it to you 😊

Happy Appwriting!

Release date

Hello,

First of all, thank you on working on a lite version of appwrite!

Then is there any estimate on when this version will be public?

Regards

🐛 Bug Report: Docker image not pulled

👟 Reproduction steps

When i run docker compose. i get error stating "pull access denied for appwrite/appwrite-lite"

👍 Expected behavior

It pull docker container and starts it.

👎 Actual Behavior

Error is displayed stating "pull access denied for appwrite/appwrite-lite"

🎲 Appwrite version

Version 0.10.x

💻 Operating system

Linux

🧱 Your Environment

No response

👀 Have you spent some time to check if this issue has been raised before?

  • I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

📚 Documentation: Provide an update on appwrite-lite status

💭 Description

The standard version of appwrite uses a lot of containers which some users don't even need, are there any plans to continue futher development of appwrite-lite ?

  • What are the current road blocks?
  • What can the community do to help make appwrite-lite happen?
  • What happened to the last docker-image for appwrite-line ?

👀 Have you spent some time to check if this issue has been raised before?

  • I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.