docs/README.md

247 lines
8.4 KiB
Markdown
Raw Normal View History

<h3 align="center">
2019-02-12 13:57:54 +01:00
<img src="https://teedy.io/img/github-title.png" alt="Teedy" width=500 />
</h3>
2013-08-18 16:21:54 +02:00
[![License: GPL v2](https://img.shields.io/badge/License-GPL%20v2-blue.svg)](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html)
2023-03-12 14:11:52 +01:00
[![Maven CI/CD](https://github.com/sismics/docs/actions/workflows/build-deploy.yml/badge.svg)](https://github.com/sismics/docs/actions/workflows/build-deploy.yml)
2013-08-18 16:21:54 +02:00
2019-02-12 13:57:54 +01:00
Teedy is an open source, lightweight document management system for individuals and businesses.
2013-08-18 16:21:54 +02:00
<hr />
<h2 align="center">
2019-10-13 01:23:03 +02:00
<a href="https://github.com/users/jendib/sponsorship">Sponsor this project if you use and appreciate it!</a>
</h2>
<hr />
2013-08-18 16:21:54 +02:00
2019-02-12 13:57:54 +01:00
![New!](https://teedy.io/img/laptop-demo.png?20180301)
2018-02-02 17:28:23 +01:00
2022-04-17 13:10:01 +02:00
# Demo
2017-11-21 23:56:32 +01:00
2019-02-12 13:57:54 +01:00
A demo is available at [demo.teedy.io](https://demo.teedy.io)
2017-11-21 23:56:32 +01:00
- Guest login is enabled with read access on all documents
- "admin" login with "admin" password
- "demo" login with "password" password
2022-04-17 13:10:01 +02:00
# Features
2013-08-18 16:21:54 +02:00
- Responsive user interface
2013-09-23 13:36:58 +02:00
- Optical character recognition
2020-08-28 18:10:28 +02:00
- LDAP authentication ![New!](https://www.sismics.com/public/img/new.png)
2018-03-20 22:46:56 +01:00
- Support image, PDF, ODT, DOCX, PPTX files
2019-01-31 15:44:58 +01:00
- Video file support
2018-10-21 01:24:59 +02:00
- Flexible search engine with suggestions and highlighting
2016-03-22 14:21:10 +01:00
- Full text search in all supported files
- All [Dublin Core](http://dublincore.org/) metadata
2019-05-21 15:55:41 +02:00
- Custom user-defined metadata ![New!](https://www.sismics.com/public/img/new.png)
- Workflow system ![New!](https://www.sismics.com/public/img/new.png)
2016-03-22 14:21:10 +01:00
- 256-bit AES encryption of stored files
2019-01-31 15:44:58 +01:00
- File versioning ![New!](https://www.sismics.com/public/img/new.png)
2016-03-22 14:21:10 +01:00
- Tag system with nesting
2019-01-31 15:44:58 +01:00
- Import document from email (EML format)
- Automatic inbox scanning and importing
2016-03-22 14:21:10 +01:00
- User/group permission system
2018-01-08 11:51:15 +01:00
- 2-factor authentication
- Hierarchical groups
2015-08-28 01:18:18 +02:00
- Audit log
2015-11-23 00:01:39 +01:00
- Comments
2015-11-30 00:12:29 +01:00
- Storage quota per user
2015-05-09 16:21:59 +02:00
- Document sharing by URL
2013-08-18 16:21:54 +02:00
- RESTful Web API
2019-01-31 15:44:58 +01:00
- Webhooks to trigger external service
2015-08-28 01:18:18 +02:00
- Fully featured Android client
2019-01-31 15:44:58 +01:00
- [Bulk files importer](https://github.com/sismics/docs/tree/master/docs-importer) (single or scan mode)
2018-04-01 21:00:26 +02:00
- Tested to one million documents
2013-08-18 16:21:54 +02:00
2022-04-17 13:10:01 +02:00
# Install with Docker
2017-04-25 11:09:18 +02:00
2023-04-22 00:47:01 +02:00
A preconfigured Docker image is available, including OCR and media conversion tools, listening on port 8080. If no PostgreSQL config is provided, the database is an embedded H2 database. The H2 embedded database should only be used for testing. For production usage use the provided PostgreSQL configuration (check the Docker Compose example)
2019-05-20 15:18:08 +02:00
2018-03-14 14:53:41 +01:00
**The default admin password is "admin". Don't forget to change it before going to production.**
2019-05-20 15:18:08 +02:00
- Master branch, can be unstable. Not recommended for production use: `sismics/docs:latest`
2023-03-12 13:58:03 +01:00
- Latest stable version: `sismics/docs:v1.11`
2019-05-20 15:18:08 +02:00
The data directory is `/data`. Don't forget to mount a volume on it.
2017-04-25 11:09:18 +02:00
2019-05-20 15:18:08 +02:00
To build external URL, the server is expecting a `DOCS_BASE_URL` environment variable (for example https://teedy.mycompany.com)
2013-08-18 16:21:54 +02:00
2022-04-17 13:10:01 +02:00
## Available environment variables
- General
2020-12-31 07:50:04 +01:00
- `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.
2021-01-05 18:59:18 +01:00
- `DOCS_BCRYPT_WORK`: Defines the work factor which is used for password hashing. The default is `10`. This value may be `4...31` including `4` and `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.
- Admin
2020-12-31 07:50:04 +01:00
- `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
2020-12-31 07:50:04 +01:00
- `DATABASE_URL`: The jdbc connection string to be used by `hibernate`.
- `DATABASE_USER`: The user which should be used for the database connection.
- `DATABASE_PASSWORD`: The password to be used for the database connection.
2023-10-09 14:05:13 +02:00
- `DATABASE_POOL_SIZE`: The pool size to be used for the database connection.
- Language
2020-12-31 07:50:04 +01:00
- `DOCS_DEFAULT_LANGUAGE`: The language which will be used as default. Currently supported values are:
- `eng`, `fra`, `ita`, `deu`, `spa`, `por`, `pol`, `rus`, `ukr`, `ara`, `hin`, `chi_sim`, `chi_tra`, `jpn`, `tha`, `kor`, `nld`, `tur`, `heb`, `hun`, `fin`, `swe`, `lav`, `dan`
- E-Mail
2020-12-31 07:50:04 +01:00
- `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.
2022-04-17 13:10:01 +02:00
## Examples
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 `.env` file or other means to securely store your passwords.
### Default, using PostgreSQL
```yaml
version: '3'
services:
# Teedy Application
teedy-server:
2023-03-12 13:58:03 +01:00
image: sismics/docs:v1.11
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: "admin@example.com"
# 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"
2023-10-09 14:05:13 +02:00
DATABASE_POOL_SIZE: "10"
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
networks:
# Network without internet access. The db does not need
# access to the host network.
docker-internal:
driver: bridge
internal: true
internet:
driver: bridge
```
### Using the internal database (only for testing)
```yaml
version: '3'
services:
# Teedy Application
teedy-server:
image: sismics/docs:v1.11
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: "admin@example.com"
# Set the admin password (in this example: "superSecure")
DOCS_ADMIN_PASSWORD_INIT: "$$2a$$05$$PcMNUbJvsk7QHFSfEIDaIOjk1VI9/E7IPjTKx.jkjPxkx2EOKSoPS"
volumes:
- ./docs/data:/data
```
2022-04-17 13:10:01 +02:00
# Manual installation
2018-03-05 11:06:26 +01:00
2022-04-17 13:10:01 +02:00
## Requirements
2021-01-25 22:40:58 +01:00
- Java 11
2021-02-12 21:54:25 +01:00
- Tesseract 4 for OCR
2018-03-05 11:06:26 +01:00
- ffmpeg for video thumbnails
- mediainfo for video metadata extraction
- A webapp server like [Jetty](http://eclipse.org/jetty/) or [Tomcat](http://tomcat.apache.org/)
2022-04-17 13:10:01 +02:00
## Download
2018-03-05 11:06:26 +01:00
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.**
2022-04-17 13:10:01 +02:00
## How to build Teedy from the sources
2013-08-18 16:21:54 +02:00
2021-02-12 21:54:25 +01:00
Prerequisites: JDK 11, Maven 3, NPM, Grunt, Tesseract 4
2013-08-18 16:21:54 +02:00
2019-02-12 13:57:54 +01:00
Teedy is organized in several Maven modules:
2013-08-18 16:21:54 +02:00
- docs-core
- docs-web
- docs-web-common
2013-08-18 16:21:54 +02:00
First off, clone the repository: `git clone git://github.com/sismics/docs.git`
or download the sources from GitHub.
2022-04-17 13:10:01 +02:00
### Launch the build
2013-08-18 16:21:54 +02:00
2016-05-05 22:43:18 +02:00
From the root directory:
2013-08-18 16:21:54 +02:00
2022-04-17 13:10:01 +02:00
```console
mvn clean -DskipTests install
```
2013-08-18 16:21:54 +02:00
2022-04-17 13:10:01 +02:00
### Run a stand-alone version
2013-08-18 16:21:54 +02:00
From the `docs-web` directory:
2022-04-17 13:10:01 +02:00
```console
mvn jetty:run
```
2013-08-18 16:21:54 +02:00
2022-04-17 13:10:01 +02:00
### Build a .war to deploy to your servlet container
2013-08-18 16:21:54 +02:00
From the `docs-web` directory:
2022-04-17 13:10:01 +02:00
```console
mvn -Pprod -DskipTests clean install
```
2013-08-18 16:21:54 +02:00
2015-08-28 01:32:29 +02:00
You will get your deployable WAR in the `docs-web/target` directory.
2014-11-30 23:12:28 +01:00
2022-04-17 13:10:01 +02:00
# Contributing
2018-03-05 11:06:26 +01:00
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.
The `master` branch is the default and base branch for the project. It is used for development and all Pull Requests should go there.
2022-04-17 13:10:01 +02:00
# License
2014-11-30 23:12:28 +01:00
2019-02-12 13:57:54 +01:00
Teedy is released under the terms of the GPL license. See `COPYING` for more
2014-11-30 23:12:28 +01:00
information or see <http://opensource.org/licenses/GPL-2.0>.