Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Flame #634

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ If you have a spare domain name you can configure applications to be accessible
* [Emby](https://emby.media/) - Media streaming and management
* [ESPHome](https://esphome.io/) - ESP8266/ESP32 programming and management for home automation
* [Firefly III](https://firefly-iii.org/) - Free and open source personal finance manager
* [Flame](https://github.com/pawelmalak/flame/) - Self-hosted startpage for your server
* [Fresh RSS](https://freshrss.org/) - Self-hosted RSS feed aggregator like Leed or Kriss Feed
* [get_iplayer](https://github.com/get-iplayer/get_iplayer) - download programmes from BBC iplayer
* [Gitea](https://gitea.io/en-us/) - Simple self-hosted GitHub clone
Expand Down
4 changes: 4 additions & 0 deletions nas.yml
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,10 @@
tags:
- firefly

- role: flame
tags:
- flame

- role: freshrss
tags:
- freshrss
Expand Down
20 changes: 20 additions & 0 deletions roles/flame/defaults/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
flame_enabled: false
flame_available_externally: false

# directories
flame_data_directory: "{{ docker_home }}/flame"

# network
flame_port: "5005"
flame_hostname: "flame"

# specs
flame_memory: 1g

# docker
flame_container_name: "flame"
flame_image: "pawelmalak/flame"
flame_tag: "latest"
flame_user_id: "1000"
flame_group_id: "1000"
17 changes: 17 additions & 0 deletions roles/flame/docs/flame.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Flame

Homepage: <https://github.com/pawelmalak/flame>

Flame is self-hosted startpage for your server. Easily manage your apps and bookmarks with built-in editors.

## Usage

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

Set all `flame_*` variables in `inventories/<your_inventory>/group_vars/all.yml`.

The flame web interface can be found at <http://ansible_nas_host_or_ip:5005>.

## Specific Configuration

Check <https://github.com/pawelmalak/flame> for more details on using the docker integration.
6 changes: 6 additions & 0 deletions roles/flame/molecule/default/molecule.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
provisioner:
inventory:
group_vars:
all:
flame_enabled: true
10 changes: 10 additions & 0 deletions roles/flame/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"
include_role:
name: "{{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') | basename }}"
vars:
flame_enabled: false
19 changes: 19 additions & 0 deletions roles/flame/molecule/default/verify.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
- name: Verify
hosts: all
gather_facts: false
tasks:
- name: Include vars
include_vars:
file: ../../defaults/main.yml

- name: Get Flame container state
docker_container_info:
name: "{{ flame_container_name }}"
register: result

- name: Check if flame docker container is running
assert:
that:
- result.container['State']['Status'] == "running"
- result.container['State']['Restarting'] == false
19 changes: 19 additions & 0 deletions roles/flame/molecule/default/verify_stopped.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
- name: Verify
hosts: all
gather_facts: false
tasks:
- name: Include vars
include_vars:
file: ../../defaults/main.yml

- name: Try and stop and remove flame
docker_container:
name: "{{ flame_container_name }}"
state: absent
register: result

- name: Check if flame containers are stopped
assert:
that:
- not result.changed
43 changes: 43 additions & 0 deletions roles/flame/tasks/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
---
- name: Start Flame
block:
- name: Create Flame Directory
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ flame_data_directory }}"

- name: Flame Docker Container
community.docker.docker_container:
name: "{{ flame_container_name }}"
image: "{{ flame_image }}:{{ flame_tag }}"
pull: true
volumes:
- "{{ flame_data_directory }}:/app/data"
- "/var/run/docker.sock:/var/run/docker.sock"
ports:
- "{{ flame_port }}:5005"
env:
TZ: "{{ ansible_nas_timezone }}"
PUID: "{{ flame_user_id }}"
PGID: "{{ flame_group_id }}"
labels:
traefik.enable: "{{ flame_available_externally | string }}"
traefik.http.routers.flame.rule: "Host(`{{ flame_hostname }}.{{ ansible_nas_domain }}`)"
traefik.http.routers.flame.tls.certresolver: "letsencrypt"
traefik.http.routers.flame.tls.domains[0].main: "{{ ansible_nas_domain }}"
traefik.http.routers.flame.tls.domains[0].sans: "*.{{ ansible_nas_domain }}"
traefik.http.services.flame.loadbalancer.server.port: "5005"
restart_policy: unless-stopped
memory: "{{ flame_memory }}"
when: flame_enabled is true

- name: Stop flame
block:
- name: Stop Flame
community.docker.docker_container:
name: "{{ flame_container_name }}"
state: absent

when: flame_enabled is false
19 changes: 19 additions & 0 deletions website/docs/applications/dashboards/flame.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
title: "Flame"
---

Homepage: <https://github.com/pawelmalak/flame>

Flame is self-hosted startpage for your server. Easily manage your apps and bookmarks with built-in editors.

## Usage

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

Set all `flame_*` variables in `inventories/<your_inventory>/group_vars/all.yml`.

The flame web interface can be found at <http://ansible_nas_host_or_ip:5005>.

## Specific Configuration

Check <https://github.com/pawelmalak/flame> for more details on using the docker integration.