Horilla - Open Source HR Software
-
Very promising.
Packaging doesn't seem to present major issues, but still work involved. -
If you want to give it a try : https://demo.horilla.com/login/
admin / admin -
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/ -
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/@BrutalBirdie they appear to be in the .md files in the OP repo.
-
@BrutalBirdie they appear to be in the .md files in the OP repo.
@robi actually no.
I just found something here: https://github.com/horilla-opensource/horilla/wiki this might be it. -
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 returned404
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 folderstaticfiles/
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
withpython3 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-2760161068Meaning, 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 arereadonly
orreadwrite
and thenrw
in/app/data/
or/run
/tmp
and are volatile.
And now to another topic.
There is a settings.py which much more undocumented stuffwhich need to be edited to enable LDAP. . . .
See: https://github.com/horilla-opensource/horilla/issues/335#issuecomment-2712573285Sooo much to see, much to do.
- refusal of the
-
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/@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
-
@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
@nikhilravi thanks and welcome. It seems you're one of the primary contributors to Horilla? Thanks for chiming in
-
Just wanted to ask the same. @nikhilravi are you https://github.com/nikhilhorilla ?
-
Just wanted to ask the same. @nikhilravi are you https://github.com/nikhilhorilla ?
@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
-
@nikhilravi thanks and welcome. It seems you're one of the primary contributors to Horilla? Thanks for chiming in
@jdaviescoates Yes
-
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 -
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@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!
-
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 toadmin: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?
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
-
For now I've identified the following folders as
runtimeDirs
meaning, they needread-write
access. Explanation behindruntimeDirs
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 beread-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. -
For now I've identified the following folders as
runtimeDirs
meaning, they needread-write
access. Explanation behindruntimeDirs
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 beread-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.@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? -
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