outline/README.md

106 lines
4.9 KiB
Markdown
Raw Normal View History

2017-12-27 14:23:41 +02:00
<p align="center">
<img src="https://user-images.githubusercontent.com/31465/34380645-bd67f474-eb0b-11e7-8d03-0151c1730654.png" height="29" />
</p>
<p align="center">
<i>A fast, collaborative, knowledge base for your team built using React and Node.js.<br/>Try out Outline using our hosted version at <a href="https://www.getoutline.com">www.getoutline.com</a>.</i>
2017-12-27 14:23:41 +02:00
<br/>
<img width="1640" alt="screenshot" src="https://user-images.githubusercontent.com/380914/110356468-26374600-7fef-11eb-9f6a-f2cc2c8c6590.png">
2017-12-27 14:23:41 +02:00
</p>
<p align="center">
2023-06-11 09:18:26 +03:00
<a href="https://circleci.com/gh/outline/outline" rel="nofollow"><img src="https://circleci.com/gh/outline/outline.svg?style=shield"></a>
<a href="http://www.typescriptlang.org" rel="nofollow"><img src="https://img.shields.io/badge/%3C%2F%3E-TypeScript-%230074c1.svg" alt="TypeScript"></a>
<a href="https://github.com/prettier/prettier"><img src="https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat" alt="Prettier"></a>
<a href="https://github.com/styled-components/styled-components"><img src="https://img.shields.io/badge/style-%F0%9F%92%85%20styled--components-orange.svg" alt="Styled Components"></a>
<a href="https://translate.getoutline.com/project/outline" alt="Localized"><img src="https://badges.crowdin.net/outline/localized.svg"></a>
2017-12-27 14:23:41 +02:00
</p>
2023-03-16 18:49:56 -07:00
This is the source code that runs [**Outline**](https://www.getoutline.com) and all the associated services. If you want to use Outline then you don't need to run this code, we offer a hosted version of the app at [getoutline.com](https://www.getoutline.com). You can also find documentation on using Outline in [our guide](https://docs.getoutline.com/s/guide).
2017-12-27 14:23:41 +02:00
If you'd like to run your own copy of Outline or contribute to development then this is the place for you.
2017-10-30 00:13:05 -07:00
2021-02-06 21:49:07 -08:00
# Installation
2017-04-23 20:12:53 -07:00
2023-03-16 18:49:56 -07:00
Please see the [documentation](https://docs.getoutline.com/s/hosting/) for running your own copy of Outline in a production configuration.
2017-10-30 00:13:05 -07:00
If you have questions or improvements for the docs please create a thread in [GitHub discussions](https://github.com/outline/outline/discussions).
2019-07-07 09:29:56 -07:00
# Development
2021-02-06 21:49:07 -08:00
2023-03-16 18:49:56 -07:00
There is a short guide for [setting up a development environment](https://docs.getoutline.com/s/hosting/doc/local-development-5hEhFRXow7) if you wish to contribute changes, fixes, and improvements to Outline.
2020-09-14 19:29:55 -07:00
## Contributing
2021-02-06 21:49:07 -08:00
Outline is built and maintained by a small team we'd love your help to fix bugs and add features!
2024-03-26 17:33:21 +01:00
Before submitting a pull request _please_ discuss with the core team by creating or commenting in an issue on [GitHub](https://www.github.com/outline/outline/issues) we'd also love to hear from you in the [discussions](https://www.github.com/outline/outline/discussions). This way we can ensure that an approach is agreed on before code is written. This will result in a much higher likelihood of your code being accepted.
2021-02-06 21:49:07 -08:00
If youre looking for ways to get started, here's a list of ways to help us improve Outline:
2021-09-10 22:46:57 -07:00
- [Translation](docs/TRANSLATION.md) into other languages
- Issues with [`good first issue`](https://github.com/outline/outline/labels/good%20first%20issue) label
- Performance improvements, both on server and frontend
- Developer happiness and documentation
- Bugs and other issues listed on GitHub
2019-05-31 11:26:26 +08:00
2021-02-06 21:49:07 -08:00
## Architecture
2017-11-10 15:24:29 -08:00
If you're interested in contributing or learning more about the Outline codebase
2021-09-10 22:46:57 -07:00
please refer to the [architecture document](docs/ARCHITECTURE.md) first for a high level overview of how the application is put together.
2021-02-06 21:49:07 -08:00
## Debugging
2017-11-10 15:24:29 -08:00
In development Outline outputs simple logging to the console, prefixed by categories. In production it outputs JSON logs, these can be easily parsed by your preferred log ingestion pipeline.
2017-11-10 15:24:29 -08:00
HTTP logging is disabled by default, but can be enabled by setting the `DEBUG=http` environment variable.
2017-04-23 20:12:53 -07:00
## Tests
2019-07-07 09:29:56 -07:00
We aim to have sufficient test coverage for critical parts of the application and aren't aiming for 100% unit test coverage. All API endpoints and anything authentication related should be thoroughly tested.
2018-01-01 12:26:04 -08:00
To add new tests, write your tests with [Jest](https://facebook.github.io/jest/) and add a file with `.test.js` extension next to the tested code.
```shell
# To run all tests
make test
# To run backend tests in watch mode
make watch
```
2021-09-10 22:46:57 -07:00
Once the test database is created with `make test` you may individually run
frontend and backend tests directly.
```shell
# To run backend tests
yarn test:server
# To run a specific backend test
yarn test:server myTestFile
# To run frontend tests
yarn test:app
```
## Migrations
Sequelize is used to create and run migrations, for example:
```shell
yarn sequelize migration:generate --name my-migration
yarn sequelize db:migrate
```
Or to run migrations on test database:
```shell
yarn sequelize db:migrate --env test
```
2017-10-30 00:13:05 -07:00
2023-08-27 17:16:42 -07:00
# Activity
![Alt](https://repobeats.axiom.co/api/embed/ff2e4e6918afff1acf9deb72d1ba6b071d586178.svg "Repobeats analytics image")
# License
2017-10-30 00:13:05 -07:00
Outline is [BSL 1.1 licensed](LICENSE).