iredmail / dockerized

Official dockerized iRedMail.
https://www.iredmail.org/
270 stars 70 forks source link

Docker Compose Version and Some SQL Always update, permission problem mitigated. #135

Open LunarInterface opened 1 year ago

LunarInterface commented 1 year ago

Pleas review it.

Thanks.

JReming85 commented 12 months ago

Have an issue where its not rewriting the password for iredapd in /opt/www/iredmail/settings.py

Its also not rewriting the mlmmjadmin_api_auth_token, thinking its because the api key contains unexpected chars like +/=

LunarInterface commented 12 months ago

Have an issue where its not rewriting the password for iredapd in /opt/www/iredmail/settings.py

Its also not rewriting the mlmmjadmin_api_auth_token, thinking its because the api key contains unexpected chars like +/=

It is probably right that it cannot be rewritten. Not because of unexpected token characters, just the mlmmjadmin entry script doesn't have a part of updating the token.

Originally, there were no updates to some tokens in the iredmail docker in other scripts, so I wrote additional ones, I think we should consider whether the token needs to be renewed even for mlmmjadmin.

If you urgently need to update mlmmjadmin, modify the mlmmjadmin script in the entry directory.

JReming85 commented 12 months ago

Its not that it cant be rewritten, its getting rewritten

Both iredadmin_db_password = 'SAME_STRING_VAR' mlmmjadmin_api_auth_token = "SAME_STRING_VAR"

I dont recall what it was now, and dont want to restart the docker, but i does it each reboot and build. Its like its failing to get the env password and just using the VAR name in its place. I just started hardcoding passwords so I dont have to bash in and fix it each boot.

LunarInterface commented 12 months ago

Its not that it cant be rewritten, its getting rewritten

Both iredadmin_db_password = 'SAME_STRING_VAR' mlmmjadmin_api_auth_token = "SAME_STRING_VAR"

I dont recall what it was now, and dont want to restart the docker, but i does it each reboot and build. Its like its failing to get the env password and just using the VAR name in its place. I just started hardcoding passwords so I dont have to bash in and fix it each boot.

I was mistaken for a moment. As you say, mlmmjadmin does not update in the entry shell script, but works directly in the python script.

By the way, did you use the setting file as settings.conf.

In my PR version, I removed the duplicate settings.conf and combined the settings file with iredmail-docker.conf.

iredmail commented 12 months ago

Dear all,

Did you try our NEW dockerized edition here? Still in alpha testing stage, want to collect more feedbacks. https://hub.docker.com/r/iredmail/test-mariadb

JReming85 commented 12 months ago

I was only making edits to the iredmail-docker.conf

@iredmail didnt realize there was a testing version with Sogo installed. Will spin up a copy and give you some feedback when I get a chance.

Lines were set to these in settings.py, all other passwords were entered correctly

iredapd_db_password = "PH_IREDAPD_DB_PASSWORD" mlmmjadmin_api_auth_token = "PH_MLMMJADMIN_API_TOKEN"

LunarInterface commented 12 months ago

I was only making edits to the iredmail-docker.conf

@iredmail didnt realize there was a testing version with Sogo installed. Will spin up a copy and give you some feedback when I get a chance.

Following the shell script closely, there is a script code that updates Python api token in the entry point shell script.

It is a structure in which mlmmjadmin.sh calls function.sh in the entry point directory to extract and update the Python api token portion with the Linux sed command.

However, as mentioned earlier, the iredmail team made a mess of the sed command, so it is parsed only at the beginning, and then the always update does not run normally.

I've been looking at some parts to always update, but I think I've left out the mlmmjadmin.

If you want, if you modify update_py_conf() on line 261 of functions.sh , it looks like it will run normally.