Skip to content

Commit

Permalink
✨ Add Lowcoder (#158)
Browse files Browse the repository at this point in the history
  • Loading branch information
anarion80 authored May 29, 2024
1 parent d157b24 commit fd08460
Show file tree
Hide file tree
Showing 11 changed files with 399 additions and 0 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@ If you have a spare domain name you can configure applications to be accessible
* [Littlelink](https://github.com/techno-tim/littlelink-server) - Self-hosted alternative to linktree
* [LiveHelperChat](https://github.com/LiveHelperChat/livehelperchat) - live support for your website
* [Loki](https://grafana.com/oss/loki/) - Loki is a horizontally scalable, highly available, multi-tenant log aggregation system inspired by Prometheus.
* [Lowcoder](https://github.com/lowcoder-org/lowcoder) - The Open Source Retool, Tooljet and Appsmith Alternative.
* [LubeLogger](https://github.com/hargata/lubelog) - LubeLogger is a web-based vehicle maintenance and fuel mileage tracker.
* [Mainsail](https://github.com/mainsail-crew/mainsail) - popular web interface for managing and controlling 3D printers with Klipper
* [Mantium](https://github.com/diogovalentte/mantium) - dashboard for tracking mangas from multiple source sites, like Mangadex and ComicK.
Expand Down
4 changes: 4 additions & 0 deletions nas.yml
Original file line number Diff line number Diff line change
Expand Up @@ -441,6 +441,10 @@
tags:
- loki

- role: lowcoder
tags:
- lowcoder

- role: lubelogger
tags:
- lubelogger
Expand Down
70 changes: 70 additions & 0 deletions roles/lowcoder/defaults/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
---
lowcoder_enabled: false
lowcoder_available_externally: false

# directories
lowcoder_data_directory: "{{ docker_home }}/lowcoder"

# network
lowcoder_port: "3028"
lowcoder_hostname: "lowcoder"
lowcoder_network_name: "lowcoder"

# specs
lowcoder_api_memory: 1g
lowcoder_node_memory: 1g
lowcoder_frontend_memory: 1g
lowcoder_db_memory: 1g
lowcoder_redis_memory: 1g

# docker
lowcoder_api_container_name: lowcoder-api
lowcoder_api_image_name: "lowcoderorg/lowcoder-ce-api-service"
lowcoder_api_image_version: latest
lowcoder_node_container_name: lowcoder-node
lowcoder_node_image_name: "lowcoderorg/lowcoder-ce-node-service"
lowcoder_node_image_version: latest
lowcoder_frontend_container_name: lowcoder-frontend
lowcoder_frontend_image_name: "lowcoderorg/lowcoder-ce-frontend"
lowcoder_frontend_image_version: latest
lowcoder_db_container_name: lowcoder-db
lowcoder_db_image_name: mongo
lowcoder_db_image_version: 4.4
lowcoder_redis_container_name: lowcoder-redis
lowcoder_redis_image_name: redis
lowcoder_redis_image_version: 7-alpine

# lowcoder
lowcoder_mongo_initdb_database: lowcoder
lowcoder_mongo_initdb_root_username: lowcoder
lowcoder_mongo_initdb_root_password: secret123
lowcoder_user_id: "9001"
lowcoder_group_id: "9001"
lowcoder_mongodb_url: "mongodb://{{ lowcoder_mongo_initdb_root_username }}:{{ lowcoder_mongo_initdb_root_password }}@{{ lowcoder_db_container_name }}:27017/{{ lowcoder_mongo_initdb_database }}?authSource=admin"
lowcoder_redis_url: "redis://{{ lowcoder_redis_container_name }}:6379"
lowcoder_node_service_url: "http://{{ lowcoder_node_container_name }}:6060"
lowcoder_max_query_timeout: "120"
lowcoder_email_auth_enabled: "true"
lowcoder_email_signup_enabled: "true"
lowcoder_create_workspace_on_signup: "true"
lowcoder_db_encryption_password: "lowcoder.org"
lowcoder_db_encryption_salt: "lowcoder.org"
lowcoder_cors_domains: "*"
lowcoder_max_orgs_per_user: "100"
lowcoder_max_members_per_org: "1000"
lowcoder_max_groups_per_org: "100"
lowcoder_max_apps_per_org: "1000"
lowcoder_max_developers: "50"
lowcoder_api_key_secret: "5a41b090758b39b226603177ef48d73ae9839dd458ccb7e66f7e7cc028d5a50b"
lowcoder_workspace_mode: "SAAS"
lowcoder_admin_smtp_host: "smtp.gmail.com"
lowcoder_admin_smtp_port: "587"
lowcoder_admin_smtp_username: "info@localhost"
lowcoder_admin_smtp_password: "secret123"
lowcoder_admin_smtp_auth: "true"
lowcoder_admin_smtp_ssl_enabled: "false"
lowcoder_admin_smtp_starttls_enabled: "true"
lowcoder_admin_smtp_starttls_required: "true"
lowcoder_email_notifications_sender: "info@localhost"
lowcoder_api_service_url: "http://{{ lowcoder_api_container_name }}:8080"
lowcoder_max_request_size: "20m"
11 changes: 11 additions & 0 deletions roles/lowcoder/docs/lowcoder.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Lowcoder

Homepage: [https://github.com/lowcoder-org/lowcoder](https://github.com/lowcoder-org/lowcoder)

The Open Source Retool, Tooljet and Appsmith Alternative.

## Usage

Set `lowcoder_enabled: true` in your `inventories/<your_inventory>/group_vars/nas.yml` file.

Lowcoder web interface can be found at [http://ansible_nas_host_or_ip:3028](http://ansible_nas_host_or_ip:3028).
6 changes: 6 additions & 0 deletions roles/lowcoder/molecule/default/molecule.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
provisioner:
inventory:
group_vars:
all:
lowcoder_enabled: true
10 changes: 10 additions & 0 deletions roles/lowcoder/molecule/default/side_effect.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
- name: Stop
hosts: all
become: true
tasks:
- name: "Include {{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') | basename }} role"
ansible.builtin.include_role:
name: "{{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') | basename }}"
vars:
lowcoder_enabled: false
47 changes: 47 additions & 0 deletions roles/lowcoder/molecule/default/verify.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
- name: Verify
hosts: all
gather_facts: false
tasks:
- name: Include vars
ansible.builtin.include_vars:
file: ../../defaults/main.yml

- name: Get lowcoder redis container state
community.docker.docker_container:
name: "{{ lowcoder_redis_container_name }}"
register: result_redis

- name: Get lowcoder db container state
community.docker.docker_container:
name: "{{ lowcoder_db_container_name }}"
register: result_db

- name: Get lowcoder api container state
community.docker.docker_container:
name: "{{ lowcoder_api_container_name }}"
register: result_api

- name: Get lowcoder node container state
community.docker.docker_container:
name: "{{ lowcoder_node_container_name }}"
register: result_node

- name: Get lowcoder frontend container state
community.docker.docker_container:
name: "{{ lowcoder_frontend_container_name }}"
register: result_frontend

- name: Check if lowcoder containers are running
ansible.builtin.assert:
that:
- result_redis.container['State']['Status'] == "running"
- result_redis.container['State']['Restarting'] == false
- result_db.container['State']['Status'] == "running"
- result_db.container['State']['Restarting'] == false
- result_api.container['State']['Status'] == "running"
- result_api.container['State']['Restarting'] == false
- result_node.container['State']['Status'] == "running"
- result_node.container['State']['Restarting'] == false
- result_frontend.container['State']['Status'] == "running"
- result_frontend.container['State']['Restarting'] == false
47 changes: 47 additions & 0 deletions roles/lowcoder/molecule/default/verify_stopped.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
- name: Verify
hosts: all
gather_facts: false
tasks:
- name: Include vars
ansible.builtin.include_vars:
file: ../../defaults/main.yml

- name: Try and stop and remove lowcoder redis
community.docker.docker_container:
name: "{{ lowcoder_db_container_name }}"
state: absent
register: result_redis

- name: Try and stop and remove lowcoder db
community.docker.docker_container:
name: "{{ lowcoder_db_container_name }}"
state: absent
register: result_db

- name: Try and stop and remove lowcoder api
community.docker.docker_container:
name: "{{ lowcoder_api_container_name }}"
state: absent
register: result_api

- name: Try and stop and remove lowcoder node
community.docker.docker_container:
name: "{{ lowcoder_node_container_name }}"
state: absent
register: result_node

- name: Try and stop and remove lowcoder frontend
community.docker.docker_container:
name: "{{ lowcoder_frontend_container_name }}"
state: absent
register: result_frontend

- name: Check if lowcoder is stopped
ansible.builtin.assert:
that:
- not result_redis.changed
- not result_db.changed
- not result_api.changed
- not result_node.changed
- not result_frontend.changed
1 change: 1 addition & 0 deletions roles/lowcoder/requirements.yml
Loading

0 comments on commit fd08460

Please sign in to comment.