{"id":19737719,"url":"https://github.com/elusivemind/openkm_demo","last_synced_at":"2026-03-19T11:22:59.588Z","repository":{"id":91444816,"uuid":"273943775","full_name":"ElusiveMind/openkm_demo","owner":"ElusiveMind","description":null,"archived":false,"fork":false,"pushed_at":"2023-09-12T17:54:21.000Z","size":7,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-28T05:46:33.259Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ElusiveMind.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-06-21T16:34:47.000Z","updated_at":"2023-09-12T17:54:24.000Z","dependencies_parsed_at":null,"dependency_job_id":"31c483b1-a179-47b8-aa20-7a22fd1d6479","html_url":"https://github.com/ElusiveMind/openkm_demo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ElusiveMind/openkm_demo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ElusiveMind%2Fopenkm_demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ElusiveMind%2Fopenkm_demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ElusiveMind%2Fopenkm_demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ElusiveMind%2Fopenkm_demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ElusiveMind","download_url":"https://codeload.github.com/ElusiveMind/openkm_demo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ElusiveMind%2Fopenkm_demo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29997213,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-02T01:47:34.672Z","status":"online","status_checked_at":"2026-03-02T02:00:07.342Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-12T01:12:06.127Z","updated_at":"2026-03-02T09:31:34.731Z","avatar_url":"https://github.com/ElusiveMind.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"## OpenKM with KEA\nLast Updated: September 12, 2023\n\nThis is an unofficial container that provides the OpenKM application with persistent data. It also provides Tesseract OCR support and the KEA and test environments.\n\nTo quickly pull and run the application, exectute the following:\n\n`docker run -p 8080:8080 mbagnall/openkm`\n\nTo add document and account persistency, use the following. Note that you will need to use this command in order for the installation not to re-initializa on every container rebuild or update.\n\n`docker run -p 8080:8080 -v./openkm-data:/opt/tomcat-8.5.69/repository mbagnall/openkm`\n\n---\n\nThe default configuration above uses the default `h2` data storage method. OpenKM has the ability to additionally integrate with:\n- MySQL\n- MariaDB\n- Oracle\n- MSSQL\n- PostgreSQL\n\nAs of this README, `h2` abd `mysql` are supported.\n\n---\n\n### Setting Up With MySQL\nThere is a sample repository with information regarding setting up your install with MySQL. You can view it [here](https://github.com/ElusiveMind/openkm_demo). It can be configured with Rancher or any other orchestration system you like. The example below comes from the demo and uses Docker Composer\n\n```yml\nversion: '2'\nservices:\n\n  # Our base OpenKM service is at the localhost. If hosting these on a domain,\n  # change the \"localhost:8080\" to your domain and optionally change the ports.\n  # if you are using ingress as a proxy, then you can make the exposed port anything\n  # but it must map to 8080 on the container.\n  openkm:\n    image: mbagnall/openkm:mysql\n    container_name: openkm\n    environment:\n      OPEN_KM_URL: http://localhost:8080/OpenKM\n      OPEN_KM_BASE_URL: http://localhost:8080\n    ports:\n      - 8080:8080\n    volumes:\n      - ./data:/opt/tomcat-8.5.69/repository\n    depends_on:\n      - db\n    restart: unless-stopped\n  \n  # We need to start our MySQL service without grant tables and with an init\n  # file to create the user. This allows the magic process of \"start service,\n  # start using\". If you need a more MySQL environment, be sure to check out\n  # the information in the readme about a more secure mysql.\n  db:\n    image: mariadb:10.6\n    container_name: openkm-datastore\n    command: --skip-grant-tables --init-file=/opt/init-file/init-file.sql\n    environment:\n      MYSQL_ROOT_PASSWORD: OpenKM77\n      MYSQL_ALLOW_EMPTY_PASSWORD: 0\n    expose:\n      - 3306\n    volumes:\n      - ./openkm-datastore:/var/lib/mysql\n      - ./openkm-init-file:/opt/init-file\n    restart: unless-stopped\n```\n\nThe init-file.sql looks like\n\n```sql\nCREATE DATABASE okmdb DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_bin;\nCREATE USER 'openkm'@'%' IDENTIFIED BY 'OpenKM77';\n```\n\n---\n### A More Secure MySQL\n\nIf you would like to lock down your MySQL you can remove the `command:` line from the MySQL service and re-add the environment variables to create the default user. **At this time it is not supported to connect this OpenKM docker-based service to an existing/shared MySQL server.** If you need support for this, please contact me [here](mailto:mbagnall@flyingflip.com).\n\nBelow is an example of the changes required. Note that the passwords must stay the same:\n\n```yaml\n  db:\n    image: mariadb:10.6\n    container_name: openkm-datastore\n    environment:\n      MYSQL_DATABASE: okmdb\n      MYSQL_USER: openkm\n      MYSQL_PASSWORD: OpenKM77\n      MYSQL_ROOT_PASSWORD: OpenKM77\n      MYSQL_ALLOW_EMPTY_PASSWORD: 0\n    expose:\n      - 3306\n    volumes:\n      - ./openkm-datastore:/var/lib/mysql\n    restart: unless-stopped\n```\n\nOnce you have started the containers, **you must alter the grants on the mysql server manually. This must be done BEFORE going to OpenKM for the first time or your install will be broken.** To alter the grants, log into your mysql contaner as root:\n\n`docker exec -ti openkm-datastore bash`\n\nThen login to your MySQL server as root:\n\n`mysql -uroot -pOpenKM77`\n\nFinally, change the grants:\n\n`GRANT ALL ON okmdb.* TO 'openkm'@'%' WITH GRANT OPTION;`\n\nAfter these steps are completed, go to the URL of your OpenKM server and everything should work. The default administrative user and password is as follows:\n\n**Username:** okmAdmin  \n**Password:** admin\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felusivemind%2Fopenkm_demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felusivemind%2Fopenkm_demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felusivemind%2Fopenkm_demo/lists"}