|
|
|
@ -8,31 +8,29 @@ import subprocess
|
|
|
|
|
|
|
|
|
|
log.basicConfig(stream=sys.stderr, level=os.environ.get("LOG_LEVEL", "WARNING"))
|
|
|
|
|
|
|
|
|
|
os.environ["MAX_FILESIZE"] = str(int(int(os.environ.get("MESSAGE_SIZE_LIMIT"))*0.66/1048576))
|
|
|
|
|
os.environ["MAX_FILESIZE"] = str(int(int(os.environ.get("MESSAGE_SIZE_LIMIT")) * 0.66 / 1048576))
|
|
|
|
|
|
|
|
|
|
db_flavor=os.environ.get("ROUNDCUBE_DB_FLAVOR","sqlite")
|
|
|
|
|
if db_flavor=="sqlite":
|
|
|
|
|
os.environ["DB_DSNW"]="sqlite:////data/roundcube.db"
|
|
|
|
|
elif db_flavor=="mysql":
|
|
|
|
|
os.environ["DB_DSNW"]="mysql://%s:%s@%s/%s" % (
|
|
|
|
|
os.environ.get("ROUNDCUBE_DB_USER","roundcube"),
|
|
|
|
|
db_flavor = os.environ.get("ROUNDCUBE_DB_FLAVOR", "sqlite")
|
|
|
|
|
if db_flavor == "sqlite":
|
|
|
|
|
os.environ["DB_DSNW"] = "sqlite:////data/roundcube.db"
|
|
|
|
|
elif db_flavor == "mysql":
|
|
|
|
|
os.environ["DB_DSNW"] = "mysql://%s:%s@%s/%s" % (
|
|
|
|
|
os.environ.get("ROUNDCUBE_DB_USER", "roundcube"),
|
|
|
|
|
os.environ.get("ROUNDCUBE_DB_PW"),
|
|
|
|
|
os.environ.get("ROUNDCUBE_DB_HOST",os.environ.get("DB_HOST","database")),
|
|
|
|
|
os.environ.get("ROUNDCUBE_DB_NAME","roundcube")
|
|
|
|
|
os.environ.get("ROUNDCUBE_DB_HOST", os.environ.get("DB_HOST", "database")),
|
|
|
|
|
os.environ.get("ROUNDCUBE_DB_NAME", "roundcube")
|
|
|
|
|
)
|
|
|
|
|
elif db_flavor=="postgresql":
|
|
|
|
|
os.environ["DB_DSNW"]="pgsql://%s:%s@%s/%s" % (
|
|
|
|
|
os.environ.get("ROUNDCUBE_DB_USER","roundcube"),
|
|
|
|
|
elif db_flavor == "postgresql":
|
|
|
|
|
os.environ["DB_DSNW"] = "pgsql://%s:%s@%s/%s" % (
|
|
|
|
|
os.environ.get("ROUNDCUBE_DB_USER", "roundcube"),
|
|
|
|
|
os.environ.get("ROUNDCUBE_DB_PW"),
|
|
|
|
|
os.environ.get("ROUNDCUBE_DB_HOST",os.environ.get("DB_HOST","database")),
|
|
|
|
|
os.environ.get("ROUNDCUBE_DB_NAME","roundcube")
|
|
|
|
|
os.environ.get("ROUNDCUBE_DB_HOST", os.environ.get("DB_HOST", "database")),
|
|
|
|
|
os.environ.get("ROUNDCUBE_DB_NAME", "roundcube")
|
|
|
|
|
)
|
|
|
|
|
else:
|
|
|
|
|
print("Unknown ROUNDCUBE_DB_FLAVOR: %s",db_flavor)
|
|
|
|
|
print("Unknown ROUNDCUBE_DB_FLAVOR: %s", db_flavor)
|
|
|
|
|
exit(1)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
conf.jinja("/php.ini", os.environ, "/usr/local/etc/php/conf.d/roundcube.ini")
|
|
|
|
|
|
|
|
|
|
# Create dirs, setup permissions
|
|
|
|
@ -42,7 +40,8 @@ os.system("chown -R www-data:www-data /var/www/html/logs")
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
print("Initializing database")
|
|
|
|
|
result=subprocess.check_output(["/var/www/html/bin/initdb.sh","--dir","/var/www/html/SQL"],stderr=subprocess.STDOUT)
|
|
|
|
|
result = subprocess.check_output(["/var/www/html/bin/initdb.sh", "--dir", "/var/www/html/SQL"],
|
|
|
|
|
stderr=subprocess.STDOUT)
|
|
|
|
|
print(result.decode())
|
|
|
|
|
except subprocess.CalledProcessError as e:
|
|
|
|
|
if "already exists" in e.stdout.decode():
|
|
|
|
@ -53,7 +52,7 @@ except subprocess.CalledProcessError as e:
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
print("Upgrading database")
|
|
|
|
|
subprocess.check_call(["/var/www/html/bin/update.sh","--version=?","-y"],stderr=subprocess.STDOUT)
|
|
|
|
|
subprocess.check_call(["/var/www/html/bin/update.sh", "--version=?", "-y"], stderr=subprocess.STDOUT)
|
|
|
|
|
except subprocess.CalledProcessError as e:
|
|
|
|
|
quit(1)
|
|
|
|
|
|
|
|
|
@ -61,7 +60,7 @@ except subprocess.CalledProcessError as e:
|
|
|
|
|
os.system("chown -R www-data:www-data /data")
|
|
|
|
|
|
|
|
|
|
# Tail roundcube logs
|
|
|
|
|
subprocess.Popen(["tail","-f","-n","0","/var/www/html/logs/errors.log"])
|
|
|
|
|
subprocess.Popen(["tail", "-f", "-n", "0", "/var/www/html/logs/errors.log"])
|
|
|
|
|
|
|
|
|
|
# Run apache
|
|
|
|
|
os.execv("/usr/local/bin/apache2-foreground", ["apache2-foreground"])
|
|
|
|
|