Cloudron makes it easy to run web apps like WordPress, Nextcloud, GitLab on your server. Find out more or install now.


Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Bookmarks
  • Search
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

Cloudron Forum

Apps | Demo | Docs | Install
  1. Cloudron Forum
  2. App Wishlist
  3. Horilla - Open Source HR Software

Horilla - Open Source HR Software

Scheduled Pinned Locked Moved App Wishlist
25 Posts 9 Posters 1.5k Views 12 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • BrutalBirdieB Offline
      BrutalBirdieB Offline
      BrutalBirdie
      Partner
      wrote last edited by BrutalBirdie
      #11

      I did make some progress yesterday with Horilla.
      Had a "working" version with the latest state of:

      • refusal of the media/ folder in its own web root

      Refused in sense of, did the initial setup uploaded my company logo, which got placed into the media/ folder but returned 404 😐

      They provide a Dockerfile which I abridged with the Cloudron base image and python uv.

      First time working styles and assets were missing, saw in the web console 404 for them.
      Then I noticed an error on start where it complained about folder staticfiles/ missing.
      So created it only to notice nothing changed only the startup error is now gone.
      Then I took a look at their own entrypoint.sh and found:

      python3 manage.py collectstatic --noinput
      

      What is this? What does it do? Documentation > /dev/null 🀷

      Did get some insight via:

      uv run manage.py collectstatic --help
      

      This collects all static files and places them in staticfiles/.
      So now I had styles and assets. Yay.

      So. It is documented that before running the server you need to run:

      python3 manage.py makemigrations
      python3 manage.py migrate
      

      Is this dynamic on every run or can this be static in the image /app/code/?
      It should be dynamic and static? 🀨
      makemigrations sound like something you need to do before upgrading the software?
      migrate could be run on every app startup, if nothing needs to be migrated it should do nothing.
      This is all speculation since it is not documented. πŸ™„

      Now outside the installation wiki for Ubuntu in the main README.md there is this section about:
      Enable Translation
      with

      python3 manage.py compilemessages
      

      So this is static? Right? Ehhhh looked like no.
      Will need to investigate.

      It seems this app could also be highly customized by the user with css/scss.
      They are implementing dynamic styling => https://github.com/horilla-opensource/horilla/issues/658#issuecomment-2795889647
      But as of now, I assume, this here is still valid https://github.com/horilla-opensource/horilla/issues/644#issuecomment-2760161068

      Meaning, as of now, styling is done directly via:

      sass static/src/scss/main.scss static/build/css/style.min.css
      

      Meaning, a static file suddenly is dynamic. This is a big no no in the Cloudron app context.
      Either files are readonly or readwrite and then rw in /app/data/ or /run /tmp and are volatile.
      πŸ™„

      And now to another topic.
      There is a settings.py which much more undocumented stuff πŸ™„ which need to be edited to enable LDAP. . . .
      See: https://github.com/horilla-opensource/horilla/issues/335#issuecomment-2712573285

      Sooo much to see, much to do.

      Like my work? Consider donating a drink. Cheers!

      1 Reply Last reply
      2
      • BrutalBirdieB BrutalBirdie

        If only the documentation of this software would include what really needs to be done πŸ™„
        I would love to contribute proper docs while finding all these small issues.
        But I can't find a repo to create PRs against https://www.horilla.com/docs/ 🀷

        N Offline
        N Offline
        nikhilravi
        wrote last edited by
        #12

        @BrutalBirdie Hi ,
        The documentation site is going to be changed from https://horilla.com/docs to https://docs.horilla.com . There is a separate documentation repo for Horilla. You can find that at https://github.com/horilla-opensource/horilladocs.

        Thank you

        jdaviescoatesJ 1 Reply Last reply
        2
        • N nikhilravi

          @BrutalBirdie Hi ,
          The documentation site is going to be changed from https://horilla.com/docs to https://docs.horilla.com . There is a separate documentation repo for Horilla. You can find that at https://github.com/horilla-opensource/horilladocs.

          Thank you

          jdaviescoatesJ Offline
          jdaviescoatesJ Offline
          jdaviescoates
          wrote last edited by
          #13

          @nikhilravi thanks and welcome. It seems you're one of the primary contributors to Horilla? Thanks for chiming in πŸ™‚

          I use Cloudron with Gandi & Hetzner

          N 1 Reply Last reply
          0
          • BrutalBirdieB Offline
            BrutalBirdieB Offline
            BrutalBirdie
            Partner
            wrote last edited by
            #14

            Just wanted to ask the same. @nikhilravi are you https://github.com/nikhilhorilla ?

            Like my work? Consider donating a drink. Cheers!

            N 1 Reply Last reply
            1
            • BrutalBirdieB BrutalBirdie

              Just wanted to ask the same. @nikhilravi are you https://github.com/nikhilhorilla ?

              N Offline
              N Offline
              nikhilravi
              wrote last edited by
              #15

              @BrutalBirdie Yes, but that account is not so active in github presently. That's kind of my secondary account which I used for the initial commits in Horilla. But that is not currently active now.

              Thank you

              1 Reply Last reply
              2
              • jdaviescoatesJ jdaviescoates

                @nikhilravi thanks and welcome. It seems you're one of the primary contributors to Horilla? Thanks for chiming in πŸ™‚

                N Offline
                N Offline
                nikhilravi
                wrote last edited by
                #16

                @jdaviescoates Yes πŸ˜‡ πŸ˜‡

                1 Reply Last reply
                2
                • BrutalBirdieB Offline
                  BrutalBirdieB Offline
                  BrutalBirdie
                  Partner
                  wrote last edited by
                  #17

                  Ahhhh! Awesome to have you here!
                  Would you mind starring your timezone with me? I'd like to continue packaging Horilla I might have some more question, if this is okay with you 😬

                  Like my work? Consider donating a drink. Cheers!

                  N 1 Reply Last reply
                  1
                  • BrutalBirdieB Offline
                    BrutalBirdieB Offline
                    BrutalBirdie
                    Partner
                    wrote last edited by
                    #18

                    Also, just created my first PR to fix some simple warning πŸ˜‰
                    Issue #744 => PR #745

                    Like my work? Consider donating a drink. Cheers!

                    1 Reply Last reply
                    1
                    • BrutalBirdieB BrutalBirdie

                      Ahhhh! Awesome to have you here!
                      Would you mind starring your timezone with me? I'd like to continue packaging Horilla I might have some more question, if this is okay with you 😬

                      N Offline
                      N Offline
                      nikhilravi
                      wrote last edited by
                      #19

                      @BrutalBirdie
                      Hey! Thrilled to be here! πŸ˜„ I'm in GMT+5:30, IST(Indian Standard Time). Feel free to keep packaging Horilla and hit me up with any questionsβ€”happy to help! πŸš€

                      1 Reply Last reply
                      2
                      • BrutalBirdieB Offline
                        BrutalBirdieB Offline
                        BrutalBirdie
                        Partner
                        wrote last edited by BrutalBirdie
                        #20

                        Okay, here is the first one that buggs me.
                        I just did a Cloudron setup https://horilla.cloudron.dev/ init the demo db. (login if you want to admin:admin)
                        Company icons missing in media, sure makes sense. They do net get downloaded in the demo db init setup, I guess.
                        Now I uploaded 3x other company logos.
                        black, green and red.
                        All 3x files exist, but get a 404.

                        Why? πŸ˜„

                        image.png
                        https://horilla.cloudron.dev/media/base/icon/black.png is 404 🀷
                        but!:

                        ls -lah media/base/icon/
                        total 60K
                        drwxr-xr-x 2 root root 4.0K May 17 08:00 .
                        drwxr-xr-x 3 root root 4.0K May 17 07:56 ..
                        -rw-r--r-- 1 root root  11K May 17 07:56 black.png
                        -rw-r--r-- 1 root root  24K May 17 07:59 green.png
                        -rw-r--r-- 1 root root  13K May 17 08:00 red.png
                        

                        Like my work? Consider donating a drink. Cheers!

                        1 Reply Last reply
                        1
                        • BrutalBirdieB Offline
                          BrutalBirdieB Offline
                          BrutalBirdie
                          Partner
                          wrote last edited by BrutalBirdie
                          #21

                          For now I've identified the following folders as runtimeDirs meaning, they need read-write access. Explanation behind runtimeDirs in the context of Cloudron => https://docs.cloudron.io/packaging/manifest/#runtimedirs
                          Many are the case because __pycache__ is being written into them and also from migrations:

                            "runtimeDirs": [
                              "/app/code/horilla_documents",
                              "/app/code/payroll",
                              "/app/code/.venv/",
                              "/app/code/facedetection",
                              "/app/code/geofencing",
                              "/app/code/helpdesk",
                              "/app/code/pms",
                              "/app/code/recruitment",
                              "/app/code/accessibility",
                              "/app/code/asset",
                              "/app/code/horilla_api",
                              "/app/code/offboarding",
                              "/app/code/horilla_audit",
                              "/app/code/horilla_crumbs",
                              "/app/code/horilla_automations",
                              "/app/code/horilla_backup",
                              "/app/code/horilla",
                              "/app/code/attendance",
                              "/app/code/onboarding",
                              "/app/code/horilla_views",
                              "/app/code/biometric",
                              "/app/code/employee",
                              "/app/code/leave",
                              "/app/code/base",
                              "/app/code/notifications",
                              "/app/code/project"
                            ]
                          

                          This is "meh".
                          The core application should be read-only, I remember I tried to do:

                          uv run manage.py makemigrations
                          uv run manage.py migrate
                          uv run manage.py compilemessages
                          

                          inside the Dockerfile to have all that as read-only but then there were still errors πŸ€”
                          Will have to look into that again.

                          Like my work? Consider donating a drink. Cheers!

                          N 1 Reply Last reply
                          1
                          • BrutalBirdieB BrutalBirdie

                            For now I've identified the following folders as runtimeDirs meaning, they need read-write access. Explanation behind runtimeDirs in the context of Cloudron => https://docs.cloudron.io/packaging/manifest/#runtimedirs
                            Many are the case because __pycache__ is being written into them and also from migrations:

                              "runtimeDirs": [
                                "/app/code/horilla_documents",
                                "/app/code/payroll",
                                "/app/code/.venv/",
                                "/app/code/facedetection",
                                "/app/code/geofencing",
                                "/app/code/helpdesk",
                                "/app/code/pms",
                                "/app/code/recruitment",
                                "/app/code/accessibility",
                                "/app/code/asset",
                                "/app/code/horilla_api",
                                "/app/code/offboarding",
                                "/app/code/horilla_audit",
                                "/app/code/horilla_crumbs",
                                "/app/code/horilla_automations",
                                "/app/code/horilla_backup",
                                "/app/code/horilla",
                                "/app/code/attendance",
                                "/app/code/onboarding",
                                "/app/code/horilla_views",
                                "/app/code/biometric",
                                "/app/code/employee",
                                "/app/code/leave",
                                "/app/code/base",
                                "/app/code/notifications",
                                "/app/code/project"
                              ]
                            

                            This is "meh".
                            The core application should be read-only, I remember I tried to do:

                            uv run manage.py makemigrations
                            uv run manage.py migrate
                            uv run manage.py compilemessages
                            

                            inside the Dockerfile to have all that as read-only but then there were still errors πŸ€”
                            Will have to look into that again.

                            N Offline
                            N Offline
                            nikhilravi
                            wrote last edited by
                            #22

                            @BrutalBirdie The problem is likely due to the media folder being owned by root, while the application server (typically running as a non-root user inside Cloudron) doesn't have read access.
                            Can you confirm whether the Cloudron running user has the access for the same?

                            1 Reply Last reply
                            0
                            • BrutalBirdieB Offline
                              BrutalBirdieB Offline
                              BrutalBirdie
                              Partner
                              wrote last edited by
                              #23

                              Agree it should not be run as root. but if everything runs as root, should work, right?

                              ps uax
                              USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
                              root           1  0.0  0.0   2696  1408 pts/0    Ss+  07:32   0:00 sleep infinit
                              root         105  1.0  0.0      0     0 ?        Z    07:37   0:51 [python3] <de
                              root         270 10.4  0.0      0     0 ?        Z    07:45   7:26 [python3] <de
                              root        1101  0.0  0.0   5144  3968 pts/2    Ss+  07:58   0:00 /bin/bash
                              root        1736  0.0  0.0   4588  3840 pts/1    Ss   08:25   0:00 /bin/bash
                              root        1748  0.0  0.0   4324  3328 pts/1    S+   08:25   0:00 /bin/bash ./s
                              root        1797  0.0  0.1  63092 15104 pts/1    Sl+  08:26   0:00 uv run manage
                              root        1800  0.7  2.9 1165820 234612 pts/1  Sl+  08:26   0:13 /app/code/.ve
                              root        1811 13.6  3.4 1911068 272500 pts/1  Sl+  08:26   4:00 /app/code/.ve
                              root        1918  0.0  0.0   5016  4096 pts/3    Ss+  08:27   0:00 /bin/bash
                              root        2108  2.5  0.0   5016  3968 pts/4    Ss   08:56   0:00 /bin/bash
                              root        2120  0.0  0.0   8332  3968 pts/4    R+   08:56   0:00 ps uax
                              

                              Like my work? Consider donating a drink. Cheers!

                              N 1 Reply Last reply
                              0
                              • BrutalBirdieB BrutalBirdie

                                Agree it should not be run as root. but if everything runs as root, should work, right?

                                ps uax
                                USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
                                root           1  0.0  0.0   2696  1408 pts/0    Ss+  07:32   0:00 sleep infinit
                                root         105  1.0  0.0      0     0 ?        Z    07:37   0:51 [python3] <de
                                root         270 10.4  0.0      0     0 ?        Z    07:45   7:26 [python3] <de
                                root        1101  0.0  0.0   5144  3968 pts/2    Ss+  07:58   0:00 /bin/bash
                                root        1736  0.0  0.0   4588  3840 pts/1    Ss   08:25   0:00 /bin/bash
                                root        1748  0.0  0.0   4324  3328 pts/1    S+   08:25   0:00 /bin/bash ./s
                                root        1797  0.0  0.1  63092 15104 pts/1    Sl+  08:26   0:00 uv run manage
                                root        1800  0.7  2.9 1165820 234612 pts/1  Sl+  08:26   0:13 /app/code/.ve
                                root        1811 13.6  3.4 1911068 272500 pts/1  Sl+  08:26   4:00 /app/code/.ve
                                root        1918  0.0  0.0   5016  4096 pts/3    Ss+  08:27   0:00 /bin/bash
                                root        2108  2.5  0.0   5016  3968 pts/4    Ss   08:56   0:00 /bin/bash
                                root        2120  0.0  0.0   8332  3968 pts/4    R+   08:56   0:00 ps uax
                                
                                N Offline
                                N Offline
                                nikhilravi
                                wrote last edited by
                                #24

                                @BrutalBirdie Yes, it shouldπŸ€”

                                1 Reply Last reply
                                0
                                • jfrereJ jfrere

                                  Hi guys, do you think this could be added to Cloudron app store? For an HR manager, this tool would be very helpful. Thank you.

                                  Horilla HRMS offers all the features you would expect from your favorite Open Source HR Software and much more. It's free & open-source!

                                  https://github.com/horilla-opensource/horilla/

                                  L Offline
                                  L Offline
                                  LoudLemur
                                  wrote last edited by
                                  #25

                                  @jfrere https://forum.cloudron.io/topic/12472/please-use-this-template-to-make-an-app-wishlist-request

                                  1 Reply Last reply
                                  0
                                  Reply
                                  • Reply as topic
                                  Log in to reply
                                  • Oldest to Newest
                                  • Newest to Oldest
                                  • Most Votes


                                    • Login

                                    • Don't have an account? Register

                                    • Login or register to search.
                                    • First post
                                      Last post
                                    0
                                    • Categories
                                    • Recent
                                    • Tags
                                    • Popular
                                    • Bookmarks
                                    • Search