Code Monkey home page Code Monkey logo

mafl's Introduction

Mafl

Mafl is an intuitive service for organizing your homepage. Customize Mafl to your individual needs and work even more efficiently!

Mafl

User Showcase | Documentation | GitHub

Current Version Last commit Docker pulls License MIT

Mafl

Table of Contents

๐ŸŽฏ Features

  • ๐Ÿ” Privacy. All requests to third-party services occur in backend.
  • โšก Real-time. Interactive cards with extra information.
  • ๐ŸŒŽ Multi-language. Supports multiple languages.
  • ๐ŸŽจ Themes. Customize the look to your liking.
  • ๐Ÿ—‚๏ธ Grouping. Create custom service groups.
  • ๐Ÿท๏ธ Tags. Add tags to your services.
  • ๐Ÿ‘Œ Easy setup. A few lines of yaml and your homepage is ready to go.
  • ๐Ÿš€ Fast. Everything is fast and free of hang-ups.
  • ๐Ÿณ Docker. Optimized docker images for popular platforms.
  • โœจ Free. Mafl is completely free and open source.
  • ๐Ÿ“ฒ PWA. Installable application.

๐Ÿš€ Getting started

Docker

This Docker image is published to both Docker Hub and the GitHub container registry. Depending on your preferences and needs, you can reference both hywax/mafl as well as ghcr.io/hywax/mafl.

version: '3.8'

services:
  mafl:
    image: hywax/mafl
    restart: unless-stopped
    ports:
      - '3000:3000'
    volumes:
      - ./config.yml:/app/data/config.yml

Node

First, clone the repository:

git clone https://github.com/hywax/mafl.git

Then install dependencies and build the production bundle (I'm using yarn here, you can use npm or pnpm if you like):

yarn install
yarn build

Finally, run the server:

yarn preview

The application will start with a basic configuration, which is located in the data folder.

Proxmox

To create a new Proxmox VE Mafl LXC, run the command below in the Proxmox VE Shell.

bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/mafl.sh)"

Configure the application by editing the config.yml file:

nano /opt/mafl/data/config.yml

Many thanks to @tteck for helping me create lxc script.

๐Ÿ“Š Services

The basic concept of Mafl is to create not just a homepage, but to create an interactive homepage page. You can combine different services with each other. You can combine different services to create the perfect customized homepage for you.

List of services:

  • Base - The main card of the service. Other services are created on the basis of this service.
  • IP API - Shows information about your IP address.
  • Weather - Shows weather information for your location.

๐ŸŽจ Themes

There are several ready-made themes in Mafl. But nothing prevents you from creating your own design themes and sharing them with other users

Mafl themes

๐Ÿ–ผ Icons

Services can have icons. With support for several different icon packs, you can find the perfect thumbnail for any application or service.

Supported types:

  • Iconify - Over 200,000 open source vector icons
  • Emoji - Any valid emoji can be used as an icon
  • URL - Pass the URL of any matching image so that it can be found and displayed.
  • Local - Store custom images locally and reference them by file name

๐ŸŒŽ Multi-language

Mafl supports multiple languages and locales. The app should automatically detect your language and set it in the settings. If not, set it in config.yml with the lang property.

Supported Languages:

  • ๐Ÿ‡ฌ๐Ÿ‡ง English - en
  • ๐Ÿ‡ท๐Ÿ‡บ Russian - ru
  • ๐Ÿ‡จ๐Ÿ‡ณ Chinese - zh
  • ๐Ÿ‡จ๐Ÿ‡ฎ Hindi - hi
  • ๐Ÿ‡ช๐Ÿ‡ธ Spanish - es
  • ๐Ÿ‡ธ๐Ÿ‡ฆ Arabic - ar (by @mohmadhabib)
  • ๐Ÿ‡ต๐Ÿ‡ฑ Polish - pl (by @UberDudePL)
  • ๐Ÿ‡ซ๐Ÿ‡ท France - fr (by @maxim31cote)

If you haven't found your language, it can easily be added! Use the instructions in the section contributing on docs.

๐Ÿ† Credits

A huge thank you to everyone who is helping to improve Mafl. Thanks to you, the project can evolve!

Contributors

To become a contributor, please follow our contributing guide.

Mafl Contributors

๐Ÿ“„ License

This app is open-sourced software licensed under the MIT license.

mafl's People

Contributors

dependabot[bot] avatar hywax avatar hywax-assistant avatar maxim31cote avatar mohmadhabib avatar uberdudepl 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  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

mafl's Issues

[FEATURE_REQUEST] Status LED over Ping or Network Lookup

Status LED can only be used if the target has a WebUI.
(proxmox also does not work although WebUI )
Here an example:
Screenshot 2024-04-10 010015

It would be good if the status LED also simply looked for IP addresses via a ping or something like the tool "Advanced IP Scanner"

[QUESTION] How to update

Question

Hi,

How can I update mafl?
When I enter "update" in the mafl LXC I got this:

    __  ___      ______
   /  |/  /___ _/ __/ /
  / /|_/ / __ `/ /_/ /
 / /  / / /_/ / __/ /
/_/  /_/\__,_/_/ /_/

 โœ— There is currently no update path available.
root@mafl:/# 

Thanks for help.

Category

Setup and Deployment

[QUESTION] <Error500>

Question

Error display:

่ฐฌ่ฏฏ 500

ๅ“Žๅ‘€๏ผๅ‡บ็Žฐๆ„ๅค–้”™่ฏฏ
[่ฝฌๅˆฐๆ–‡ๆกฃ โ†’](https://mafl.hywax.space/)
{
 "services": {
  "_errors": [
   "Required",
   "Required"
  ]
 }
}

My docker compose :

version: '3.8'

services:
  mafl:
    image: hywax/mafl
    restart: unless-stopped
    ports:
      - '16010:3000'
    volumes:
      - ./config.yml:/app/data/config.yml

My Linux Cpu:

ๅ‘่กŒ็‰ˆๆœฌย debian-12.4

ๅ†…ๆ ธ็‰ˆๆœฌย 6.1.0-10-amd64
็ณป็ปŸ็ฑปๅž‹ย x86_64

Category

Setup and Deployment

[FEATURE_REQUEST] Health Check

Is your feature request related to a problem? If so, please describe.

No response

Describe the solution you'd like

Add HEALTHCHECK command to Dockerfile

Priority

Low (Nice-to-have)

Is this something you would be keen to implement

None

[BUG] Update notify

Environment

Self-Hosted (Docker)

System

No response

Version

No response

Describe the problem

Now the UI shows a new version notification before push docker registry.

This is because the version is obtained from github releases. We need to redo version retrieval on the docker hub api.

May have to add a cron to not request each version on page load. And do it in the background

https://hub.docker.com/v2/repositories/hywax/mafl/tags

Additional info

No response

0.12 update update fail over tteck

Update over tteck do this at the end:

`<--- JS stacktrace --->

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
----- Native stack trace -----

1: 0xb84bd6 node::OOMErrorHandler(char const*, v8::OOMDetails const&) [/usr/bin/node]
2: 0xefec30 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [/usr/bin/node]
3: 0xefef17 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [/usr/bin/node]
4: 0x1110925 [/usr/bin/node]
5: 0x1110eb4 v8::internal::Heap::RecomputeLimits(v8::internal::GarbageCollector) [/usr/bin/node]
6: 0x1127da4 v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::internal::GarbageCollectionReason, char const*) [/usr/bin/node]
7: 0x11285bc v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/usr/bin/node]
8: 0x10fe8c1 v8::internal::HeapAllocator::AllocateRawWithLightRetrySlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/usr/bin/node]
9: 0x10ffa55 v8::internal::HeapAllocator::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/usr/bin/node]
10: 0x10dd0a6 v8::internal::Factory::NewFillerObject(int, v8::internal::AllocationAlignment, v8::internal::AllocationType, v8::internal::AllocationOrigin) [/usr/bin/node]
11: 0x1537e36 v8::internal::Runtime_AllocateInYoungGeneration(int, unsigned long*, v8::internal::Isolate*) [/usr/bin/node]
12: 0x1971ef6 [/usr/bin/node]
|Aborted
error Command failed with exit code 134.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

[ERROR] in line 68: exit code 0: while executing command yarn build

root@mafl:~# nano /opt/mafl/data/config.yml`

[FEATURE_REQUEST] Dashboard Icons integration

Is your feature request related to a problem? If so, please describe.

No response

Describe the solution you'd like

Hey, loving this dashboard!

I'm the owner of the Dashboard Icons repo and would love to have it integrated into your dashboard project. Icons are easily accessible by using https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/example.png.

Priority

Medium (Would be very useful)

Is this something you would be keen to implement

Maybe

[BUG] <title>Error 500 Oops! There's been an unexpected error

Environment

Self-Hosted (Docker)

System

Linux 5.15.0-78-generic #85-Ubuntu SMP Fri Jul 7 15:25:09 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Version

hywax/mafl

Describe the problem

Hello, it is looks a beautiful homepage, and I like it, but seem something happen when I used the docker cli with hywax/mafl.


Listening on http://[::]:3000
ZodError: [
  {
    "code": "invalid_union",
    "unionErrors": [
      {
        "issues": [
          {
            "code": "invalid_type",
            "expected": "array",
            "received": "undefined",
            "path": [
              "services"
            ],
            "message": "Required"
          }
        ],
        "name": "ZodError"
      },
      {
        "issues": [
          {
            "code": "invalid_type",
            "expected": "object",
            "received": "undefined",
            "path": [
              "services"
            ],
            "message": "Required"
          }
        ],
        "name": "ZodError"
      }
    ],
    "path": [
      "services"
    ],
    "message": "Invalid input"
  }
]
    at get error [as error] (file:///app/server/node_modules/zod/lib/index.mjs:538:31)
    at ZodObject.parse (file:///app/server/node_modules/zod/lib/index.mjs:638:22)
    at validateConfigSchema (file:///app/server/chunks/nitro/node-server.mjs:5176:17)
    at loadLocalConfig (file:///app/server/chunks/nitro/node-server.mjs:5189:5)
    at async file:///app/server/chunks/nitro/node-server.mjs:5229:23 {
  issues: [
    {
      code: 'invalid_union',
      unionErrors: [Array],
      path: [Array],
      message: 'Invalid input'
    }
  ],
  addIssue: [Function (anonymous)],
  addIssues: [Function (anonymous)],
  errors: [
    {
      code: 'invalid_union',
      unionErrors: [Array],
      path: [Array],
      message: 'Invalid input'
    }
  ]
}
[Vue warn]: Component <Anonymous> is missing template or render function.

Additional info

No response

[BUG] Proxmox Update Script fails

Environment

Other (Specify below)

System

Proxmox 8.1.5

Version

11.0

Describe the problem

LXC was built using tteck's script and is running 11.0 just fine. When running the script inside the LXC console, I'm receiving the following error.

<--- Last few GCs --->

[465:0x57870f0] 84370 ms: Mark-Compact 492.4 (521.9) -> 487.9 (521.5) MB, 646.78 / 0.00 ms (average mu = 0.182, current mu = 0.136) allocation failure; scavenge might not succeed
[465:0x57870f0] 85004 ms: Mark-Compact 492.6 (522.3) -> 489.0 (522.6) MB, 607.69 / 0.00 ms (average mu = 0.118, current mu = 0.042) allocation failure; scavenge might not succeed

<--- JS stacktrace --->

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
----- Native stack trace -----

1: 0xb84bd6 node::OOMErrorHandler(char const*, v8::OOMDetails const&) [/usr/bin/node]
2: 0xefead0 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [/usr/bin/node]
3: 0xefedb7 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [/usr/bin/node]
4: 0x11107c5 [/usr/bin/node]
5: 0x1110d54 v8::internal::Heap::RecomputeLimits(v8::internal::GarbageCollector) [/usr/bin/node]
6: 0x1127c44 v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::internal::GarbageCollectionReason, char const*) [/usr/bin/node]
7: 0x112845c v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/usr/bin/node]
8: 0x10fe761 v8::internal::HeapAllocator::AllocateRawWithLightRetrySlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/usr/bin/node]
9: 0x10ff8f5 v8::internal::HeapAllocator::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/usr/bin/node]
10: 0x10dcf46 v8::internal::Factory::NewFillerObject(int, v8::internal::AllocationAlignment, v8::internal::AllocationType, v8::internal::AllocationOrigin) [/usr/bin/node]
11: 0x1537cd6 v8::internal::Runtime_AllocateInYoungGeneration(int, unsigned long*, v8::internal::Isolate*) [/usr/bin/node]
12: 0x1971ef6 [/usr/bin/node]
|Aborted
error Command failed with exit code 134.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

[ERROR] in line 68: exit code 0: while executing command yarn build

Additional info

No response

[BUG] Theme does not work

Environment

Self-Hosted (Docker)

System

Chrome 122.0.6261.95, Docker in Proxmox, Safari on iPhone

Version

0.9.2

Describe the problem

Hello,
First of all, Thank you for creating this beaty. I was building my won homepage with such look myself but using old html :)
I've create my config. All is working great apart from themes. No matter which theme I select it always uses System. On Chrome I have light but on my iPhone dark it running as it is night. Most probably in the morning it will change to light. On Opera I default to dark as well due to browser settings

Additional info

title: UberDude's Homepage
lang: en
theme: deep
checkUpdates: true
behaviour:
target: _blank
services:
Home:
- title: Home Assistant
description: Home automation
link: https://xyz/
icon:
name: simple-icons:homeassistant
status:
enabled: true
Media:
- title: Plex
description: Plex Media Server
link: http://xyz/
icon:
name: mdi:plex
- title: qBittorrent
description: qBittorren Panel
link: http://xyz/
icon:
name: simple-icons:qbittorrent
Admin:
- title: Pi Hole
description: qBittorren Panel
link: http://xyz/
icon:
name: mdi:pi-hole

[FEATURE_REQUEST] Center elements vertical and horizontal

Is your feature request related to a problem? If so, please describe.

No response

Describe the solution you'd like

It would be great to have a configuration option to center the output vertical and horizontal and set the max-width from a fixed value to auto. For large screens this would be a great addition.

Priority

Low (Nice-to-have)

Is this something you would be keen to implement

No

[QUESTION] Use own icons - Proxmox LXC

Question

Where I have to store my own icons "physically" in the Proxmox LXC Container?
There is no information in the documentation.

Category

Using Icons

[FEATURE_REQUEST] Reloading config.yml

Question

I love the look and simplicity of mafl, thank you for your work!

Stupid question perhaps but changing the config.yml does not have instant results and in order to see my changes, I need to restart the mafl service - is this expected or am I doing something wrong?

thank you

Category

App Usage

[FEATURE_REQUEST] PWA color head

Is your feature request related to a problem? If so, please describe.

No response

Describe the solution you'd like

Right now, when creating a PWA, the header has a white fill color. It should be changed to bend color

Priority

Low (Nice-to-have)

Is this something you would be keen to implement

None

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.