{"id":20934659,"url":"https://github.com/erudika/scoold","last_synced_at":"2026-04-02T19:51:30.595Z","repository":{"id":37767196,"uuid":"80853339","full_name":"Erudika/scoold","owner":"Erudika","description":"A Stack Overflow clone for teams (self-hosted or hosted)","archived":false,"fork":false,"pushed_at":"2025-04-11T13:52:34.000Z","size":11044,"stargazers_count":877,"open_issues_count":8,"forks_count":238,"subscribers_count":24,"default_branch":"master","last_synced_at":"2025-04-11T14:53:47.034Z","etag":null,"topics":["clone","cloud-native","community-forums","forum","forum-software","forums","forumsoftware","java","knowledge-base","knowledgebase","q-and-a","questions-and-answers","scoold","self-hosted","spring-boot","stackexchange","stackoverflow","stackoverflow-questions","support-forum","teams"],"latest_commit_sha":null,"homepage":"https://scoold.com","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Erudika.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-02-03T17:43:40.000Z","updated_at":"2025-04-11T13:52:38.000Z","dependencies_parsed_at":"2023-02-18T16:45:50.905Z","dependency_job_id":"512b28a7-91eb-45b5-b8d9-4d8890199937","html_url":"https://github.com/Erudika/scoold","commit_stats":null,"previous_names":[],"tags_count":137,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Erudika%2Fscoold","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Erudika%2Fscoold/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Erudika%2Fscoold/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Erudika%2Fscoold/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Erudika","download_url":"https://codeload.github.com/Erudika/scoold/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248717243,"owners_count":21150388,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["clone","cloud-native","community-forums","forum","forum-software","forums","forumsoftware","java","knowledge-base","knowledgebase","q-and-a","questions-and-answers","scoold","self-hosted","spring-boot","stackexchange","stackoverflow","stackoverflow-questions","support-forum","teams"],"created_at":"2024-11-18T22:10:16.513Z","updated_at":"2026-04-02T19:51:30.582Z","avatar_url":"https://github.com/Erudika.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cbr\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://scoold.com/logo-dark.svg\"/\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://scoold.com/logo.svg\"/\u003e\n    \u003cimg width=\"360\" alt=\"Scoold Logo\" src=\"https://scoold.com/logo.svg\"/\u003e\n  \u003c/picture\u003e\n  \u003cbr\u003e\u003cbr\u003e\n  \u003ch3\u003e\n    The most effective way to share knowledge within your team or organization\n  \u003c/h3\u003e\n\u003c/div\u003e\n\u003cdiv align=\"center\"\u003e\n\n**Scoold** is a Q\u0026A and a knowledge sharing platform for teams, inspired by Stack Overflow.\n\u003cbr\u003e\nScoold is enterprise-ready, super customizable and lightweight. \n\n**Scoold Pro**, the premium version of Scoold, is the perfect knowledge sharing platform \nfor your company or team. The pricing is flat, without limits, the license - perpetual.\n\u003cbr\u003e\u003cbr\u003e\nAre you still paying per seat in 2026? **Scoold Pro** is the knowledge sharing platform **to migrate to!**\n\n[Compare Features](https://scoold.com/pricing/)\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![Docker pulls](https://img.shields.io/docker/pulls/erudikaltd/scoold)](https://hub.docker.com/r/erudikaltd/scoold)\n[![Docker pulls](https://img.shields.io/docker/image-size/erudikaltd/scoold)](https://hub.docker.com/r/erudikaltd/scoold)\n[![Join the chat at https://gitter.im/Erudika/scoold](https://badges.gitter.im/Erudika/scoold.svg)](https://gitter.im/Erudika/scoold?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n[![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE)\n\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n\u003ca href=\"https://scoold.com\"\u003eWebsite\u003c/a\u003e \u0026nbsp;-\u0026nbsp; \u003ca href=\"https://scoold.com/documentation/\"\u003eDocumentation\u003c/a\u003e \u0026nbsp;-\u0026nbsp; \u003ca href=\"https://demo.scoold.com\"\u003eDemo\u003c/a\u003e \u0026nbsp;-\u0026nbsp; \u003ca href=\"https://scoold.com/documentation/reference/scoold-api/\"\u003eAPI\u003c/a\u003e\n\n\u003c/div\u003e\n\n## Scoold - open-source knowledge sharing platform\n\n**Scoold** is a Q\u0026A and a knowledge sharing platform for teams. The project was created back in 2008, released in 2012 as\nsocial network for schools inspired by Stack Overflow. In 2017 it was refactored, repackaged and open-sourced.\n\nScoold can be deployed anywhere - Heroku, DigitalOcean, AWS, Azure or any VPS hosting provider. It's lightweight,\nthe backend is handled by a separate service called [Para](https://github.com/Erudika/para). All the heavy lifting is\ndelegated to Para which can also be configured to store the data in any of the popular databases. This makes the Scoold\ncode base easy to read and can be learned quickly, even by junior developers.\n\n**Scoold Pro**, the paid version of Scoold, has premium features which make it the perfect knowledge sharing platform for\nyour company or team.\n\n**This project is fully funded and supported by [Erudika](https://erudika.com) - an independent, bootstrapped company.**\n\n### Features\n\n- Full featured Q\u0026A platform\n- Database-agnostic, optimized for cloud deployment\n- Full-text search\n- Distributed object cache\n- Location-based search and \"near me\" filtering of posts\n- I18n with RTL language support\n- Reputation and voting system with badges\n- Custom badges - add your own text, icon and color\n- Spaces (Teams) - groups of isolated questions and users\n- Webhooks with signature signing\n- [Zapier integration](https://zapier.com/developer/public-invite/96144/23ee4c1c6f03dc964b479b0d8ed027bb/)\n- Minimal frontend JS code based on jQuery\n- Modern, responsive layout powered by Materialize CSS\n- Suggestions for similar questions and hints for duplicate posts\n- Email notifications for post replies and comments\n- Backup and Restore\n- RESTful API defined with OpenAPI 3.0\n- Spring Boot project (single JAR)\n- Mutual authentication support (mTLS)\n- LDAP authentication support\n- Social login (Facebook, Google, GitHub, LinkedIn, Microsoft, Slack, Amazon, Twitter) with Gravatar support\n- Syntax highlighting for code in posts, GFM markdown support with tables, task lists and strikethrough\n- Import data from Stack Overflow for Teams\n- Emojis! - using this [cheat sheet](https://www.webpagefx.com/tools/emoji-cheat-sheet/) or inline Unicode\n- Support for uploading custom avatars (to Imgur, Cloudinary)\n- SEO friendly\n- Cookie consent (for GDPR, CCPA, etc.)\n\n### [Buy Scoold Pro](https://paraio.com/scoold-pro) and also get these premium features:\n\n- [Slack integration](https://scoold.com/slack.html)\n- [Mattermost integration](https://scoold.com/mattermost.html)\n- [Microsoft Teams integration](https://scoold.com/teams.html)\n- SAML authentication support\n- Custom authentication support\n- SCIM 2.0 for automatic user provisioning\n- Mentions with notifications\n- File uploads (local, AWS S3, Azure Blob)\n- Account suspensions (permabans)\n- Anonymous posts\n- Unlimited spaces\n- Multiple admins\n- Multiple identity domains\n- Sticky / Favorite posts\n- Advanced syntax highlighting\n- Email digest of recent questions\n- Security notifications\n- Wiki-style answers\n\n...and more!\n\n## [Live DEMO](https://demo.scoold.com)\n\nFor **admin** access, go to the demo login page and click \"Continue with Demo Login\".\n\n## Documentation\n\nThe full documentation for Scoold is at [scoold.com/documentation](https://scoold.com/documentation/)\n\n## Scoold architecture intro (or 'what the heck is Para?')\n\nScoold is a client application of the [Para](https://paraio.org) backend server. Almost every request to\nScoold produces at least one request to Para as well. When you ask a question on Scoold, a `create` request is\nsent to Para to the location `POST /v1/questions`. Here are a few key points about that architecture:\n- A Para server can be hosted anywhere and store data inside any of the [supported databases](https://github.com/Erudika/para#database-integrations).\n- Para is a multi-tenant server which stores data in isolated environments called \"apps\".\n- One or more instance of Scoold (like a cluster) can connect to the same Para app environment and share the data.\n- Multiple separate Scoold websites can be powered by the same Para backend using different Para apps.\n- Each app environment is completely independent from others and has its own database table and search index.\n- Both Scoold and Para can be hosted on the same machine or on multiple machines, on different networks.\n- Scoold talks to Para via HTTP(S) so Para must be directly accessible from Scoold, but can also be hosted on a private network.\n\nHead over to the [documentation](https://scoold.com/documentation/intro/architecture/) for detailed explanation of the Scoold architecture.\n\n## Scoold Pro cloud hosting\n\n\n## Support\n\nYou can get support here by submitting an issue. Also you can head over to the Gitter chat room for help.\nIssues related to **Scoold Pro** must be reported to [Erudika/scoold-pro](https://github.com/Erudika/scoold-pro/issues).\n[Paid/priority support is also available](https://erudika.com/support/).\n\n## Getting help\n\n- Have a question? - [ask it on Gitter](https://gitter.im/Erudika/scoold)\n- Found a bug? - submit a [bug report here](https://github.com/Erudika/scoold/issues)\n- Ask a question on Stack Overflow using the [`scoold`](https://stackoverflow.com/tags/scoold/info) tag\n- For questions related to Para, use the [`para`](https://stackoverflow.com/tags/para/info) tag on Stack Overflow\n\n## Blog\n\n### [Read more about Scoold on our blog](https://erudika.com/blog/tags/scoold/)\n\n## Translating Scoold\n\nYou can translate Scoold to your language by copying the [English language file](https://github.com/Erudika/scoold/blob/master/src/main/resources/lang_en.properties)\nand translating it. When you're done, change the file name from \"lang_en.properties\" to \"lang_xx.properties\"\nwhere \"xx\" is the language code for your locale. Finally, open a pull request here.\n\n| Language | File | Progress\n--- | --- | ---\n**Albanian** | [lang_sq.properties](src/main/resources/lang_sq.properties) | 0%\n**Arabic** | [lang_ar.properties](src/main/resources/lang_ar.properties) | :heavy_check_mark: (Google Translate)\n**Belarusian** | [lang_be.properties](src/main/resources/lang_be.properties) | 0%\n**Bulgarian** | [lang_bg.properties](src/main/resources/lang_bg.properties) | :heavy_check_mark:\n**Catalan** | [lang_ca.properties](src/main/resources/lang_ca.properties) | 0%\n**Chinese (Traditional)** | [lang_zh_tw.properties](src/main/resources/lang_zh_tw.properties) | :heavy_check_mark: Thanks Kyon Cheng!\n**Chinese (Simplified)** | [lang_zh_cn.properties](src/main/resources/lang_zh_cn.properties) | :heavy_check_mark: Thanks Kyon Cheng!\n**Croatian** | [lang_hr.properties](src/main/resources/lang_hr.properties) | 0%\n**Czech** | [lang_cs.properties](src/main/resources/lang_cs.properties) | 0%\n**Danish** | [lang_da.properties](src/main/resources/lang_da.properties) | :heavy_check_mark: Thanks @viking1972!\n**Dutch** | [lang_nl.properties](src/main/resources/lang_nl.properties) | :heavy_check_mark: Thanks Jan Halsema!\n**English** | [lang_en.properties](src/main/resources/lang_en.properties) | :heavy_check_mark:\n**Estonian** | [lang_et.properties](src/main/resources/lang_et.properties) | 0%\n**Farsi** | [lang_fa.properties](src/main/resources/lang_fa.properties) | :heavy_check_mark: Thanks Sadegh G. Shohani!\n**Finnish** | [lang_fi.properties](src/main/resources/lang_fi.properties) | 0%\n**French** | [lang_fr.properties](src/main/resources/lang_fr.properties) | :heavy_check_mark: Thanks Charles Maheu!\n**German** | [lang_de.properties](src/main/resources/lang_de.properties) | :heavy_check_mark: Thanks Patrick Gäckle!\n**Greek** | [lang_el.properties](src/main/resources/lang_el.properties) | 0%\n**Hebrew** | [lang_iw.properties](src/main/resources/lang_iw.properties) | :heavy_check_mark: Thanks David A.\n**Hindi** | [lang_hi.properties](src/main/resources/lang_hi.properties) | :heavy_check_mark: Thanks Rakesh Gopathi!\n**Hungarian** | [lang_hu.properties](src/main/resources/lang_hu.properties) | 0%\n**Icelandic** | [lang_is.properties](src/main/resources/lang_is.properties) | 0%\n**Indonesian** | [lang_in.properties](src/main/resources/lang_in.properties) | 0%\n**Irish** | [lang_ga.properties](src/main/resources/lang_ga.properties) | 0%\n**Italian** | [lang_it.properties](src/main/resources/lang_it.properties) | :heavy_check_mark: Thanks Marco Livrieri!\n**Japanese** | [lang_ja.properties](src/main/resources/lang_ja.properties) | :heavy_check_mark: Thanks Mozy Okubo!\n**Korean** | [lang_ko.properties](src/main/resources/lang_ko.properties) | :heavy_check_mark: Thanks HyunWoo Jo!\n**Lithuanian** | [lang_lt.properties](src/main/resources/lang_lt.properties) | 0%\n**Latvian** | [lang_lv.properties](src/main/resources/lang_lv.properties) | 0%\n**Macedonian** | [lang_mk.properties](src/main/resources/lang_mk.properties) | 0%\n**Malay** | [lang_ms.properties](src/main/resources/lang_ms.properties) | 0%\n**Maltese** | [lang_mt.properties](src/main/resources/lang_mt.properties) | 0%\n**Norwegian** | [lang_no.properties](src/main/resources/lang_no.properties) | 0%\n**Polish** | [lang_pl.properties](src/main/resources/lang_pl.properties) | 0%\n**Portuguese** | [lang_pt.properties](src/main/resources/lang_pt.properties) | :heavy_check_mark: Thanks Karina Varela!\n**Romanian** | [lang_ro.properties](src/main/resources/lang_ro.properties) | 0%\n**Russian** | [lang_ru.properties](src/main/resources/lang_ru.properties) | :heavy_check_mark: Thanks Vladimir Perevezentsev!\n**Serbian** | [lang_sr.properties](src/main/resources/lang_sr.properties) | 0%\n**Slovak** | [lang_sk.properties](src/main/resources/lang_sk.properties) | 0%\n**Slovenian** | [lang_sl.properties](src/main/resources/lang_sl.properties) | 0%\n**Spanish** | [lang_es.properties](src/main/resources/lang_es.properties) | :heavy_check_mark: Thanks Trisha Jariwala!\n**Swedish** | [lang_sv.properties](src/main/resources/lang_sv.properties) | 0%\n**Thai** | [lang_th.properties](src/main/resources/lang_th.properties) | 0%\n**Turkish** | [lang_tr.properties](src/main/resources/lang_tr.properties) | :heavy_check_mark: Thanks Aysad Kozanoglu!\n**Ukrainian** | [lang_uk.properties](src/main/resources/lang_uk.properties) | 0%\n**Vietnamese** | [lang_vi.properties](src/main/resources/lang_vi.properties) | 0%\n\nYou can also change the default language of Scoold for all users by setting `scoold.default_language_code = \"en\"`, where\ninstead of \"en\" you enter the 2-letter code of the language of your choice.\n\n## Building Scoold\n\nTo compile it you'll need JDK 8+ and Maven. Once you have it, just clone and build:\n\n```sh\ngit clone https://github.com/erudika/scoold.git \u0026\u0026 cd scoold\nmvn install\n```\n\nTo run a local instance of Scoold for development, use:\n\n```sh\nmvn -Dconfig.file=./scoold-application.conf spring-boot:run\n```\n\nTo generate a WAR package, run:\n\n```sh\nmvn -Pwar package\n```\n\nTo generate the native image for your particaluar achitecture, run:\n\n```sh\nmvn -Pnative clean package\n```\n\nGraalVM is required to be installed before compiling the native image.\n\n\n## Contributing\n\n1. Fork this repository and clone the fork to your machine\n2. Create a branch (`git checkout -b my-new-feature`)\n3. Implement a new feature or fix a bug and add some tests\n4. Commit your changes (`git commit -am 'Added a new feature'`)\n5. Push the branch to **your fork** on GitHub (`git push origin my-new-feature`)\n6. Create new Pull Request from your fork\n\nPlease try to respect the code style of this project. To check your code, run it through the style checker:\n\n```sh\nmvn validate\n```\n\nFor more information, see [CONTRIBUTING.md](https://github.com/Erudika/para/blob/master/CONTRIBUTING.md)\n\n## License\n\n[Apache 2.0](LICENSE)\n\n\u003cdiv align=\"center\"\u003e\n\n![Scoold Q\u0026A](https://raw.githubusercontent.com/Erudika/scoold/master/assets/header.png)\n\nStack Overflow in a JAR\n\nMade in the EU 🇪🇺 by Erudika\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferudika%2Fscoold","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ferudika%2Fscoold","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferudika%2Fscoold/lists"}