ImSkully Posted September 14, 2023 Share Posted September 14, 2023 (edited) OpenProject is a web-based project management system for location-independent team collaboration, this is a release of the open-source community edition. Website | Registry | Documentation | Template Repo This application template is a one-click install with minimal configuration required to have OpenProject be up and running locally within a matter of minutes, or a more advanced configuration via additional template options. OpenProject Features Project planning and scheduling Product roadmap and release planning Task management and team collaboration Agile and Scrum Time tracking, cost reporting, and budgeting Bug tracking Wikis Forums Meeting agendas and meeting minutes More information and screenshots can be found on the website. Requirements There are no requirements for this template! Installation & Setup Install OpenProject from community applications (ImSkully's Repository) Update the required variables: (Optional) Adjust the container WebUI port, by default this is 5683. OPENPROJECT_HOST__NAME: Set the hostname for the frontend to use, this must be equal to your server IP and the WebUI port above. (5683 by default) SECRET_KEY_BASE: The secret key used to sign sensitive data, enter a random string here. Done! Create the container and after a few minutes the web UI should be available, you will now be able to login with the default credentials: Username: admin Password: admin (You will immediately be prompted to update the password) Additional Configuration There are a number of additional variables available to customize your OpenProject instance, simply edit the container and add new variables with your custom configuration values. For a list of all supported environment variables refer to the official documentation. Using an Existing Postgres Database By default this container is an all-in-one setup and will create a Postgres database for its usage, however if you already have an existing PostgreSQL instance you may wish to use that instead (see official documentation for more info). When editing the container, add a new variable with the key 'DATABASE_URL' and the value should be your connection string which consists of the following: postgresql://USERNAME:PASSWORD@HOST:PORT/DATABASE USERNAME: Your PostgreSQL username PASSWORD: The password to the account HOST: The host name (likely your Unraid server IP if its running on the same server) PORT: Postgres port (default 5432) DATABASE: The database to use (e.g. 'openproject') If you have created a new user specifically for OpenProject in your database, it may be necessary to grant access to the public schema for your configured user: GRANT ALL ON SCHEMA public TO <YOUR_USERNAME>; Support If you have any issues with the template or it has gone out of date, please let me know and I will update it - otherwise you are welcome to leave any support queries below. Edited May 30 by ImSkully 1 Quote Link to comment
ImSkully Posted September 14, 2023 Author Share Posted September 14, 2023 (edited) Common Issues Login Credentials Not Working If the default username and password of 'admin' are not working on a fresh install, you have likely previously installed OpenProject and have your old Postgres database data still in your configured Postgres Data Directory (by default this is /mnt/user/appdata/openproject/pgdata) To fix this, delete the contents of this directory with the container stopped and then start it up again - this should recreate a fresh database for you to use with the default credentials. SSL/HTTPS Error on WebUI (ERR_SSL_PROTOCOL_ERROR) If you enabled the OPENPROJECT_HTTPS setting and started the container, you are expected to additionally configure your OpenProject instance such as the hostname and support for running behind a reverse proxy if you are using one; refer to the official documentation on how to do this correctly. Alternatively if you do not have HTTPS enabled and still see this error, it is likely that you have a cached DNS entry which is pointing your current hostname to HTTPS. To resolve this you can simply clear your DNS and wait, or change the WebUI port to something else and restart the container. Updating from v13.0 to v14.1.0 See comment below for more information. Edited June 9 by ImSkully Quote Link to comment
LoneStar Posted September 16, 2023 Share Posted September 16, 2023 Anyone running a Postgres database in a separate docker instance might need to add the following to the Postgres db after creating the db details for OpenProject: grant all on schema public to <openproject-admin>; For example - manually creating an OpenProject db & user and granting access (probably not 100% correct): docker exec -it postgres bash su - postgres psql -- list all databases (see: https://gist.github.com/Kartones/dd3ff5ec5ea238d4c546) \l CREATE DATABASE openproject CHARACTER SET utf8; CREATE USER <openproject-admin> WITH ENCRYPTED PASSWORD '????'; GRANT ALL PRIVILEGES ON DATABASE openproject TO <openproject-admin>; -- connect to database as user postgres \c openproject postgres grant all on schema public to <openproject-admin>; 1 Quote Link to comment
ImSkully Posted September 17, 2023 Author Share Posted September 17, 2023 (edited) On 9/16/2023 at 10:45 PM, LoneStar said: Anyone running a Postgres database in a separate docker instance might need to add the following to the Postgres db after creating the db details for OpenProject: grant all on schema public to <openproject-admin>; Thanks for providing the information, I have updated the template to add the DATABASE_URL variable for users who wish to use an existing Postgres database and updated the topic to include information on this setup along with this query. Edit: This has since been removed as it prevents the container from ever using its own internal database even when left blank. (See comment) Edited September 21, 2023 by ImSkully Quote Link to comment
SpuriousIndices Posted September 20, 2023 Share Posted September 20, 2023 (edited) Hello! Trying to get this installed and running into the same error on multiple Unraid boxes - read through the instructions and feel like I've covered all bases... but we all know how that goes, guessing I'm missing something obvious. Only things I updated when installing in the template was changing the hostname to the IP (10.1.10.124:5683) and added a super secret key for signature - then hit apply. Each time coming up with a Postgres issue, looks like it's using the variable names and not the actual variable data if that makes sense. (ie shows 'DATABASE_URL' = ' postgresql://USERNAME:PASSWORD@HOST:IP/DATABASE_NAME ' for the command, and not the actual values.) As soon as the container is started after initial install, it immediately shuts down and will not startup. (didn't even boot up for the initial few minute delay for DB/container to populate) Below is what I'm seeing in the error log. Attempts to start it after that initial setup all fail with the same error. **UPDATE** Was able to get this resolved... was indeed something silly, didn't see the DATABASE_URL variable in the template... turns out I was missing the "Show more settings" at the bottom - heading here and removing the string for the DB made it work! Happy to remove this post - figured might be helpful for anyone in the future pulling a "me", haha. Edited September 20, 2023 by SpuriousIndices fixed - updating post 1 Quote Link to comment
ImSkully Posted September 20, 2023 Author Share Posted September 20, 2023 (edited) @SpuriousIndices Glad you got it it resolved and thanks for sharing - sorry about the DATABASE_URL variable, it seems that OpenProject is not checking to see if the variable value is blank so it will always attempts to use it instead of creating its own Postgres database. I have removed the variable from the template, if anyone is looking to use an existing Postgres database please see 'Using an Existing Postgres Database' in the first post. Edited September 21, 2023 by ImSkully 1 Quote Link to comment
irishjd Posted September 21, 2023 Share Posted September 21, 2023 I actually had to remove the "DATABASE_URL" label to get it to run. Leaving it blank, resulting in errors trying to connect to an undefined remote postgres server. 1 Quote Link to comment
ImSkully Posted September 21, 2023 Author Share Posted September 21, 2023 (edited) 17 hours ago, irishjd said: I actually had to remove the "DATABASE_URL" label to get it to run. Leaving it blank, resulting in errors trying to connect to an undefined remote postgres server. Yeah I've discovered this too (see my last comment) and have removed the variable entirely from the template. It's annoying that OpenProject aren't validating env variables to check they have a value first before using them 🙄 I'll either open a feature request for Unraid to add the ability to make template variables not be added to the container unless they have a value, or open a bug report with OpenProject to validate this variable before using it. Update: Opened a bug report on this and it has since been fixed with OpenProject and will be made available in the next patch release. Edited September 22, 2023 by ImSkully 2 Quote Link to comment
Tolete Posted November 19, 2023 Share Posted November 19, 2023 trying to resolve the 'HTTPS mode setup mismatch' error adding the environment variable does not does not solve the mismatch. OPENPROJECT_HTTPS=true Anyone get this to work with cloudflare tunnel? Quote Link to comment
ImSkully Posted November 19, 2023 Author Share Posted November 19, 2023 (edited) 14 hours ago, Tolete said: trying to resolve the 'HTTPS mode setup mismatch' error adding the environment variable does not does not solve the mismatch. OPENPROJECT_HTTPS=true Anyone get this to work with cloudflare tunnel? I haven't used OpenProject via tunnel or proxy so I can't be of much help, though I know you may also have to set SERVER_PROTOCOL_FORCE_HTTPS=true for it to work. Edited November 19, 2023 by ImSkully Quote Link to comment
Tolete Posted November 21, 2023 Share Posted November 21, 2023 (edited) On 11/19/2023 at 12:09 PM, ImSkully said: I haven't used OpenProject via tunnel or proxy so I can't be of much help, though I know you may also have to set SERVER_PROTOCOL_FORCE_HTTPS=true for it to work. I have both variable set on the container. OPENPROJECT_HTTPS=true SERVER_PROTOCOL_FORCE_HTTPS=true still no joy, shows the 'HTTPS mode setup mismatch' error after logging in. Edited November 21, 2023 by Tolete Quote Link to comment
jokeruk2 Posted January 31 Share Posted January 31 Hi, I've tried installing this, only thing I've changed is the hostname (to the server IP) and the key, but as soon as the container gets to "running bootstrap script ...", it quits. Never gets any further. Any thoughts? Quote Link to comment
ImSkully Posted January 31 Author Share Posted January 31 30 minutes ago, jokeruk2 said: Hi, I've tried installing this, only thing I've changed is the hostname (to the server IP) and the key, but as soon as the container gets to "running bootstrap script ...", it quits. Never gets any further. Any thoughts? Hey, I have just tested by creating a new container using this template and adjusting just the server IP and key as you mentioned - the container started correctly and created the PG database & migrations. Are you able to provide the full logs? Looking at the screenshot you provided my best guess is that it's something related to the appdata directory it's trying to use (by default is /mnt/user/appdata/openproject/pgdata) which is where it stores the postgres data. Is the directory being created? does the container have permission to it? Are you running low on disk space perhaps? Quote Link to comment
jokeruk2 Posted February 2 Share Posted February 2 On 1/31/2024 at 4:04 PM, ImSkully said: Hey, I have just tested by creating a new container using this template and adjusting just the server IP and key as you mentioned - the container started correctly and created the PG database & migrations. Are you able to provide the full logs? Looking at the screenshot you provided my best guess is that it's something related to the appdata directory it's trying to use (by default is /mnt/user/appdata/openproject/pgdata) which is where it stores the postgres data. Is the directory being created? does the container have permission to it? Are you running low on disk space perhaps? It's creating the directories, but you might have a point with permissions - I'll check. 1 Quote Link to comment
JOKER357thomas Posted March 22 Share Posted March 22 Hello everyone, I have a question that might not fit here, but it concerns the template. To integrate a functionality, the inclusion of a file in the DockerCompose YAML is described. This means that to load the container, a file must be present at a certain location and integrated into the system. Is there a way to do this, and if so, how? A link in that direction would be greatly appreciated. Thank you! I'm referring to something like this: Modify your "docker-compose.yml": add the following code at line 31 Quote Link to comment
ImSkully Posted March 22 Author Share Posted March 22 @JOKER357thomas Hey, what specific functionality are you trying to enable/configure here? If you can forward the relevant section of OpenProject's documentation that you are trying to follow then I can take a look and see how you can reflect this change on the template, there is no "docker-compose.yml" file for Unraid but rather the template itself that you can modify with variables to achieve the same thing. Quote Link to comment
JOKER357thomas Posted March 22 Share Posted March 22 9 hours ago, ImSkully said: @JOKER357thomas Hey, what specific functionality are you trying to enable/configure here? If you can forward the relevant section of OpenProject's documentation that you are trying to follow then I can take a look and see how you can reflect this change on the template, there is no "docker-compose.yml" file for Unraid but rather the template itself that you can modify with variables to achieve the same thing. Hey @ImSkully i want to load a file into the "boot" Job of the docker container. Like i posted. Its the file to load the premium functionalities. it named "enterprise_token.rb". Quote Link to comment
TheCyberQuake Posted April 25 Share Posted April 25 On 1/31/2024 at 8:04 AM, ImSkully said: Hey, I have just tested by creating a new container using this template and adjusting just the server IP and key as you mentioned - the container started correctly and created the PG database & migrations. Are you able to provide the full logs? Looking at the screenshot you provided my best guess is that it's something related to the appdata directory it's trying to use (by default is /mnt/user/appdata/openproject/pgdata) which is where it stores the postgres data. Is the directory being created? does the container have permission to it? Are you running low on disk space perhaps? Having the same issue. Many terrabytes of free space, perms look to be in order, but I'm not sure on specifics of what the perms should look like. assets folder is owned by my username, pgdata folder is owned by 103:106. pgdata folder gets created but it's completely empty. Error I get is identical, failing at boostrap script: 2024-04-25 12:46:21.226 PDT [43] LOG: could not link file "pg_wal/xlogtemp.43" to "pg_wal/000000010000000000000001": Function not implemented 2024-04-25 12:46:21.230 PDT [43] FATAL: could not open file "pg_wal/000000010000000000000001": No such file or directory child process exited with exit code 1 initdb: removing contents of data directory "/var/openproject/pgdata" -----> Setting PGVERSION=13 PGBIN=/usr/lib/postgresql/13/bin PGCONF_FILE=/etc/postgresql/13/main/postgresql.conf -----> Starting the all-in-one OpenProject setup at /app/docker/prod/supervisord... -----> Database cluster not found. Creating a new one in /var/openproject/pgdata... The files belonging to this database system will be owned by user "postgres". This user must also own the server process. The database cluster will be initialized with locale "C.UTF-8". The default text search configuration will be set to "english". Data page checksums are disabled. fixing permissions on existing directory /var/openproject/pgdata ... ok creating subdirectories ... ok selecting dynamic shared memory implementation ... posix selecting default max_connections ... 100 selecting default shared_buffers ... 128MB selecting default time zone ... America/Los_Angeles creating configuration files ... ok running bootstrap script ... ** Press ANY KEY to close this window ** Not sure where to look if you need further logs Quote Link to comment
Dragonhunt Posted May 22 Share Posted May 22 Hi, i have a question, can you update your repository? Because OpenProject changed their docker hub link to openproject/openproject so its not openproject/community anymore. Thank you in advance :) Quote Link to comment
ImSkully Posted May 24 Author Share Posted May 24 (edited) On 5/22/2024 at 2:26 PM, Dragonhunt said: Hi, i have a question, can you update your repository? Because OpenProject changed their docker hub link to openproject/openproject so its not openproject/community anymore. Thank you in advance Sorry for the delay! The docker registry has been moved to openproject/openproject and updated to the latest recommended stable release version 14.1.0. On 4/25/2024 at 8:54 PM, TheCyberQuake said: Having the same issue. Many terrabytes of free space, perms look to be in order, but I'm not sure on specifics of what the perms should look like. assets folder is owned by my username, pgdata folder is owned by 103:106. pgdata folder gets created but it's completely empty. Error I get is identical, failing at boostrap script: Please try update to the latest version and see if the still issue persists. Edited May 24 by ImSkully Quote Link to comment
ImSkully Posted May 24 Author Share Posted May 24 Updating from v13.0 to v14.1.0 There are some breaking changes introduced between these versions, please refer to the changelog in 14.0.0 and 14.1.0 for anything that may be relevant to you before updating. A notable breaking change for those who require direct access to the built-in Postgres database that also runs in the container: Quote Removal of all-in-one PostgreSQL exposed port In the all-in-one Dockerfile, up until now, both port 80 and 5432 (PostgreSQL database) were exposed by default. As we are also not exposing other services such as memcached, we removed the PostgreSQL port for consistency. If you need to work on the database directly, you can still use the command below to e.g. access pg_dump: docker exec -it <container id> pg_dump Quote Link to comment
CypherColt Posted May 28 Share Posted May 28 On 9/14/2023 at 4:44 PM, ImSkully said: Common Issues Login Credentials Not Working If the default username and password of 'admin' are not working on a fresh install, you have likely previously installed OpenProject and have your old Postgres database data still in your configured Postgres Data Directory (by default this is /mnt/user/appdata/openproject/pgdata) To fix this, delete the contents of this directory with the container stopped and then start it up again - this should recreate a fresh database for you to use with the default credentials. SSL/HTTPS Error on WebUI (ERR_SSL_PROTOCOL_ERROR) If you enabled the OPENPROJECT_HTTPS setting and started the container, you are expected to additionally configure your OpenProject instance such as the hostname and supporting for running behind a reverse proxy if you are using one; refer to the official documentation on how to do this correctly. Alternatively if you do not have HTTPS enabled and still see this error, it is likely you have a cached DNS entry which is pointing your current hostname to HTTPS. To resolve this you can simply clear your DNS and wait, or change the WebUI port to something else and restart the container. Updating from v13.0 to v14.1.0 See comment below for more information. It seems the container is always appending 'OPENPROJECT_HTTPS' = 'false' to it so it overrides when we set it to true as a variable, I'm not sure how to workaround that within unraid other than to build my own docker compose until this one is fixed. Quote Link to comment
ImSkully Posted May 30 Author Share Posted May 30 (edited) On 5/28/2024 at 5:11 PM, CypherColt said: It seems the container is always appending 'OPENPROJECT_HTTPS' = 'false' to it so it overrides when we set it to true as a variable, I'm not sure how to workaround that within unraid other than to build my own docker compose until this one is fixed. Thanks for reporting, it seems OpenProject are just checking for the presence of the variable regardless of its value. Edited June 9 by ImSkully Quote Link to comment
Gelantious Posted June 3 Share Posted June 3 Hello, just install this but getting stuck on the login, getting an 422 error. Quote [Error 422] Unable to verify Cross-Site Request Forgery token. Did you try to submit data on multiple browsers or tabs? Please close all tabs and try again. The OpenProject cookie is missing. Please ensure that cookies are enabled, as this application will not properly function without. I've tried clearing cache, other browsers and another computer all together, still no luck... Quote Link to comment
Ocean HP Posted June 9 Share Posted June 9 (edited) On 6/3/2024 at 4:19 AM, Gelantious said: Hello, just install this but getting stuck on the login, getting an 422 error. I've tried clearing cache, other browsers and another computer all together, still no luck... After hours of searching and testing, my solution to the Error 422 was to add the variable: OPENPROJECT_HTTPS and set it to false; both for the value and default value. I couldn't access the login page through my browser (Brave) even after clearing the cache. I was able to access the login page in a private/incognito window. Hope this helps you @Gelantious. Anyone solved the Nginx problem? I've set both the OPENPROJECT_HTTPS, SERVER_PROTOCOL_FORCE_HTTPS, and OPENPROJECT_HSTS to true. Changed the host name to op.mydomain.com. Changed the network to match Swag and got the proxy config file. None of the settings seem to do anything. OP still listens on the localhost:port. Maybe there is another variable we have to use? Edited June 9 by Ocean HP 2 Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.