Skip to content

Instantly share code, notes, and snippets.

@markasoftware
Last active November 18, 2025 20:30
Show Gist options
  • Select an option

  • Save markasoftware/f5b2e55a2c2e3abb1f9eefcdf0bfff45 to your computer and use it in GitHub Desktop.

Select an option

Save markasoftware/f5b2e55a2c2e3abb1f9eefcdf0bfff45 to your computer and use it in GitHub Desktop.
OpenProject Enterprise mode for free
############ REPLACE app/models/enterprise_token.rb in the source code with this file! ################
############ also be sure to RESTART OpenProject after replacing the file. ################
############ it doesn't show that enterprise mode is enabled in the settings, but all ################
############ enterprise mode features, such as KanBan boards, are enabled. ################
# OpenProject is an open source project management software.
# Copyright (C) the OpenProject GmbH
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License version 3.
#
# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
# Copyright (C) 2006-2013 Jean-Philippe Lang
# Copyright (C) 2010-2013 the ChiliProject Team
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# See COPYRIGHT and LICENSE files for more details.
#++
class EnterpriseToken < ApplicationRecord
class << self
def current
self.new
end
def allows_to?(feature)
true
end
def active?
true
end
def hide_banners?
true
end
def show_banners?
false
end
def banner_type_for(feature:)
nil
end
end
def token_object
Class.new do
def has_feature?(feature)
true
end
def will_expire?
false
end
def mail
"[email protected]"
end
def subscriber
"markasoftware-free-enterprise-mode"
end
def company
"markasoftware"
end
def domain
"markasoftware.com"
end
def issued_at
Time.zone.today - 1
end
def starts_at
Time.zone.today - 1
end
def expires_at
Time.zone.today + 1
end
def reprieve_days
nil
end
def reprieve_days_left
69
end
def restrictions
nil
end
def available_features
[]
end
def plan
"markasoftware_free_enterprise_mode"
end
def features
[]
end
def version
69
end
end.new
end
def will_expire?
false
end
def mail
"[email protected]"
end
def subscriber
"markasoftware-free-enterprise-mode"
end
def company
"markasoftware"
end
def domain
"markasoftware.com"
end
def issued_at
Time.zone.today - 1
end
def starts_at
Time.zone.today - 1
end
def expires_at
Time.zone.today + 1
end
def reprieve_days
nil
end
def reprieve_days_left
69
end
def restrictions
nil
end
def available_features
[]
end
def plan
"markasoftware_free_enterprise_mode"
end
def features
[]
end
def version
69
end
def allows_to?(action)
true
end
def expired?(reprieve: true)
false
end
def invalid_domain?
false
end
end
@lordadminchicken
Copy link

lordadminchicken commented Sep 9, 2025

Could you guide setup this token to v16.3.1 ? i run by https://community-scripts.github.io/ProxmoxVE/scripts?id=openproject

@kenny0718 Follow the manual installation directions. Replace the contents of /opt/openproject/app/models/enterprise_token.rb with this gist in your Proxmox LXC. Then restart OpenProject, systemctl restart openproject. You can also restart the LXC.

############ If you are runing a manual installation:                                  ################
############ REPLACE app/models/enterprise_token.rb in the source code with this file! ################

I'm using docker-compose.override.yml so my settings are not overridden with an update. Which services need the volumes-entry for enterprise_token.rb?

@pstahel put this in your docker-compose.override.yml.

services:
  web:
    volumes:
      - /mnt/docker/openproject/data/enterprise_token.rb:/app/app/models/enterprise_token.rb:ro
  worker:
    volumes:
      - /mnt/docker/openproject/data/enterprise_token.rb:/app/app/models/enterprise_token.rb:ro
  cron:
    volumes:
      - /mnt/docker/openproject/data/enterprise_token.rb:/app/app/models/enterprise_token.rb:ro
  seeder:
    volumes:
      - /mnt/docker/openproject/data/enterprise_token.rb:/app/app/models/enterprise_token.rb:ro

Anywhere in the official OpenProject docker-compose repo that is referencing <<: *app is pulling the settings from the x-op-app block. You could create your own block and reference it the same way, just don't reuse the existing anchors as docker compose will discard the ones in the repo for the one ones you tried to redefine.

x-enterprise-volume: &enterprise-volume
  volumes:
    - /mnt/docker/openproject/data/enterprise_token.rb:/app/app/models/enterprise_token.rb:ro

services:
  web:
    <<: *enterprise-volume
  worker:
    <<: *enterprise-volume
  cron:
    <<: *enterprise-volume
  seeder:
    <<: *enterprise-volume

@CC1119
Copy link

CC1119 commented Sep 10, 2025

Confirm that it works with 16.4.0 on Docker Compose and hosted

@pauloappbr
Copy link

Confirm that it works with 16.4.0 on Docker Compose and hosted

Acabei de testar na versão 16.4.0, até ao momento funcionando bem

@scalenow
Copy link

@CC1119 Is 16.4.0 worth upgrading.Any new features which are prominent or it backend improvements

@GameDr04
Copy link

I can also confirm that the gist continues to work on 16.4.0.

@scalenow It's pretty-much always worth upgrading. The list of bugfixes is quite lengthy, especially as the OP team stabilizes the relatively new v16 release.

@duzupis
Copy link

duzupis commented Sep 20, 2025

Tested 16.4.2: custom Touch icon is not uploading; however, theme colors, favicon, and logo can be changed.

@v64
Copy link

v64 commented Sep 23, 2025

this one liner works for me using 16.4.1, adjust your local paths and env vars accordingly

  sudo docker run -d -p 8080:80 --name openproject \
  -e OPENPROJECT_HOST__NAME=your.domain.com \
  -e OPENPROJECT_SECRET_KEY_BASE=yoursecret \
  -v /opt/openproject/pgdata:/var/openproject/pgdata \
  -v /opt/openproject/assets:/var/openproject/assets \
  -v /opt/openproject/enterprise_token.rb:/app/app/models/enterprise_token.rb:ro \
  openproject/openproject:16

@scalenow
Copy link

Morning Folks. Nextcloud has launched version32. Has anyone of you tried to integrate openproject with Nextcloud .Does the integration work ?

@GameDr04
Copy link

@scalenow Yes, I've successfully done it and I find the integration profoundly underwhelming; don't waste your time. I could go on and on, but that would be way off-topic for this thread.

@scalenow
Copy link

@GameDr04 my integration is working on openproject 15.6 and nextcloud 31.0.9,on upgrading to nextcloud 32 the integration broke

@Ferdous150439urp
Copy link

so im totally newbee, i've downloaded openproject and replaced "enterprise_token.rb", inside "\openproject-dev\app\models", and build it in docker.. did i do something wrong ? as nothing changed apparently !

@scalenow
Copy link

scalenow commented Oct 1, 2025

Mornig All,

Successfully integrated Nextcloud 32 with Openproject 15.6 ,everything works smoothly

@magwork93
Copy link

Does this work with 16.5 ? can anyone confirm

@CC1119
Copy link

CC1119 commented Oct 9, 2025

Does this work with 16.5 ? can anyone confirm

Yes. Just updated on a debian and on a docker. It works fine

@scalenow
Copy link

Does any one has any idea when will the AI functionality be introduced by openproject ??

@arseniigorkin
Copy link

Thank you! It works perfectly on 16.5.0!

@Shailesh913
Copy link

sudo docker run -d -p 8080:80 --name openproject
-e OPENPROJECT_HOST__NAME=your.domain.com
-e OPENPROJECT_SECRET_KEY_BASE=yoursecret
-v /opt/openproject/pgdata:/var/openproject/pgdata
-v /opt/openproject/assets:/var/openproject/assets
-v /opt/openproject/enterprise_token.rb:/app/app/models/enterprise_token.rb:ro
openproject/openproject:16

For above container what version of Postgres is required. Because I am trying with 16.9 it give me error of
The transaction_timeout

@scalenow
Copy link

scalenow commented Nov 5, 2025

Folks has any body tested on 16.6,openproject just released couple of hours ago

@evermorev
Copy link

I can confirm it works when you update the container to 16.6 and then on the machine where the docker container is hosted use the command: docker cp /path/to/enterprise_token.rb OpenProject:/app/app/models (change the /path/to/ to whatever your path to the file is) then stop and start the container. I can confirm it is working doing that.

@scalenow
Copy link

scalenow commented Nov 6, 2025

thanks @evermorev

@maximbeliveau
Copy link

Hi i think there something missing due to the token, when we try to display relations in work packages we got nothing.

image

@markasoftware
Copy link
Author

markasoftware commented Nov 7, 2025 via email

@maximbeliveau
Copy link

@maximbeliveau which version of open project?

16.5.0

@maximbeliveau
Copy link

Does any one has any idea when will the AI functionality be introduced by openproject ??
@scalenow
you can already if you want, there some MCP servers already emerging. look on google for openproject MCP server
https://github.com/AndyEverything/openproject-mcp-server

@markasoftware
Copy link
Author

There was one new feature called calculated_values which got added recently and I just added to this script, but I doubt that is the problem. Can someone else confirm the behavior @maximbeliveau is seeing and that this behavior is unexpected?

@scalenow
Copy link

scalenow commented Nov 9, 2025

@maximbeliveau I have also developed a proprietary NLP application to interact . I will look into this . thanks for the information

@maximbeliveau
Copy link

There was one new feature called calculated_values which got added recently and I just added to this script, but I doubt that is the problem. Can someone else confirm the behavior @maximbeliveau is seeing and that this behavior is unexpected?

i tried this weekend on my Dev at home and its working, i will run more test at work tomorow.

@n3b0r
Copy link

n3b0r commented Nov 15, 2025

Where is the rg binary located in the docker container to get the list of functions?

@maximbeliveau
Copy link

Where is the rg binary located in the docker container to get the list of functions?

/app/app/models

@markasoftware
Copy link
Author

markasoftware commented Nov 15, 2025 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment