Lightweight document management system packed with all the features you can expect from big expensive solutions
Teedy is an open source, lightweight document management system for individuals and businesses.
A demo is available at demo.teedy.io
A preconfigured Docker image is available, including OCR and media conversion tools, listening on port 8080. The database is an embedded H2 database but PostgreSQL is also supported for more performance.
The default admin password is "admin". Don't forget to change it before going to production.
The data directory is
/data. Don't forget to mount a volume on it.
To build external URL, the server is expecting a
DOCS_BASE_URLenvironment variable (for example https://teedy.mycompany.com)
DOCS_BASE_URL: The base url used by the application. Generated url's will be using this as base.
DOCS_GLOBAL_QUOTA: Defines the default quota applying to all users.
DOCS_BCRYPT_WORK: Defines the work factor which is used for password hashing. The default is
10. This value may be
31. The specified value will be used for all new users and users changing their password. Be aware that setting this factor to high can heavily impact login and user creation performance.
DOCS_ADMIN_EMAIL_INIT: Defines the e-mail-address the admin user should have upon initialization.
DOCS_ADMIN_PASSWORD_INIT: Defines the password the admin user should have upon initialization. Needs to be a bcrypt hash. Be aware that
$within the hash have to be escaped with a second
DATABASE_URL: The jdbc connection string to be used by
DATABASE_USER: The user which should be used for the database connection.
DATABASE_PASSWORD: The password to be used for the database connection.
DOCS_DEFAULT_LANGUAGE: The language which will be used as default. Currently supported values are:
DOCS_SMTP_HOSTNAME: Hostname of the SMTP-Server to be used by Teedy.
DOCS_SMTP_PORT: The port which should be used.
DOCS_SMTP_USERNAME: The username to be used.
DOCS_SMTP_PASSWORD: The password to be used.
In the following examples some passwords are exposed in cleartext. This was done in order to keep the examples simple. We strongly encourage you to use variables with an
.envfile or other means to securely store your passwords.
version: '3' services: # Teedy Application teedy-server: image: sismics/docs:v1.9 restart: unless-stopped ports: # Map internal port to host - 8080:8080 environment: # Base url to be used DOCS_BASE_URL: "https://docs.example.com" # Set the admin email DOCS_ADMIN_EMAIL_INIT: "[email protected]" # Set the admin password (in this example: "superSecure") DOCS_ADMIN_PASSWORD_INIT: "$$2a$$05$$PcMNUbJvsk7QHFSfEIDaIOjk1VI9/E7IPjTKx.jkjPxkx2EOKSoPS" volumes: - ./docs/data:/data
version: '3' services: # Teedy Application teedy-server: image: sismics/docs:v1.9 restart: unless-stopped ports: # Map internal port to host - 8080:8080 environment: # Base url to be used DOCS_BASE_URL: "https://docs.example.com" # Set the admin email DOCS_ADMIN_EMAIL_INIT: "[email protected]" # Set the admin password (in this example: "superSecure") DOCS_ADMIN_PASSWORD_INIT: "$$2a$$05$$PcMNUbJvsk7QHFSfEIDaIOjk1VI9/E7IPjTKx.jkjPxkx2EOKSoPS" # Setup the database connection. "teedy-db" is the hostname # and "teedy" is the name of the database the application # will connect to. DATABASE_URL: "jdbc:postgresql://teedy-db:5432/teedy" DATABASE_USER: "teedy_db_user" DATABASE_PASSWORD: "teedy_db_password" volumes: - ./docs/data:/data networks: - docker-internal - internet depends_on: - teedy-db
DB for Teedy
teedy-db: image: postgres:13.1-alpine restart: unless-stopped expose: - 5432 environment: POSTGRES_USER: "teedy_db_user" POSTGRES_PASSWORD: "teedy_db_password" POSTGRES_DB: "teedy" volumes: - ./docs/db:/var/lib/postgresql/data networks: - docker-internal
Network without internet access. The db does not need
access to the host network.
docker-internal: driver: bridge internal: true internet: driver: bridge
The latest release is downloadable here: https://github.com/sismics/docs/releases in WAR format. The default admin password is "admin". Don't forget to change it before going to production.
Prerequisites: JDK 11, Maven 3, NPM, Grunt, Tesseract 4
Teedy is organized in several Maven modules:
First off, clone the repository:
git clone git://github.com/sismics/docs.gitor download the sources from GitHub.
From the root directory:
mvn clean -DskipTests install
mvn -Pprod -DskipTests clean install
You will get your deployable WAR in the
All contributions are more than welcomed. Contributions may close an issue, fix a bug (reported or not reported), improve the existing code, add new feature, and so on.
masterbranch is the default and base branch for the project. It is used for development and all Pull Requests should go there.
Teedy is released under the terms of the GPL license. See
COPYINGfor more information or see http://opensource.org/licenses/GPL-2.0.