Jump to content

[Support] ImSkully - OpenProject


ImSkully

Recommended Posts

 

OpenProject-wide.png.c6de64f97759ad4aa42bf7f156fb9f06.png

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

 

More information and screenshots can be found on the website.

Requirements

  • There are no requirements for this template!

Installation & Setup

  1. Install OpenProject from community applications (ImSkully's Repository)
     
  2. Update the required variables:
    1. (Optional) Adjust the container WebUI port, by default this is 5683.
    2. 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)
    3. SECRET_KEY_BASE: The secret key used to sign sensitive data, enter a random string here.
       
  3. 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:
    1. Username: admin
    2. 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 by ImSkully
  • Thanks 1
Link to comment

Common Issues

  1. 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.
     
  2. 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.
     
  3. Updating from v13.0 to v14.1.0
    See comment below for more information.
Edited by ImSkully
Link to comment

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>;	

 

  • Like 1
Link to comment
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 by ImSkully
Link to comment

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.

 

1296150147_openproject-dockerexecution.thumb.png.4513ecef857c4da770348fca0ee2f91c.png1937179340_openproject-logscreenshot.thumb.png.ce15f88f249f77f6c61a0c65fb1cecee.png

 

 

**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. :)

 

1945202738_openproject-stringremove.thumb.png.5bb49058c2e66063d03c6f0a92a1b72f.png

 

Edited by SpuriousIndices
fixed - updating post
  • Like 1
Link to comment

@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 by ImSkully
  • Like 1
Link to comment
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 by ImSkully
  • Like 2
Link to comment
  • 1 month later...
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 by ImSkully
Link to comment
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 by Tolete
Link to comment
  • 2 months later...
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?

Link to comment
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.

  • Like 1
Link to comment
  • 1 month later...

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

Link to comment

@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.

Link to comment
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".

Link to comment
  • 1 month later...
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

Link to comment
  • 4 weeks later...
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 by ImSkully
Link to comment

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

 

 

Link to comment

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...