1 Star 0 Fork 268

悠悠客 / symphony

forked from 88250 / symphony 
Create your Gitee Account
Explore and code with more than 6 million developers,Free private repositories !:)
Sign up
Clone or download
Notice: Creating folder will generate an empty file .keep, because not support in Git

English | 中文


Symphony is a modern community platform, because it:

  • implements a content oriented discussion forum
  • includes a social network for users to share, make friends, and play games
  • the ability to aggregate independent bloggers, to build and share quality resources
  • and 100% open source

Welcome to Sym official community - HacPai for more details.


Sym was born with the following reasons:


  • a lot of system interfaces still keep the old style, far from keeping up with the pace of development of the times, they do not have the characteristics of innovation, fun, lack of modern interactive elements and user experience
  • most systems are designed from the programmer's point of view, without considering the actual product, operational requirements, such systems function is too simple, the details are not refined enough, the lack of long-term maintenance
  • in addition, we are exploring a new community mode, to achieve Solo) and Symphony combined with community new experience


  • universal GitHub even can not find a Java community system, Sym to fill the gaps in the universe
  • do the most popular open source community system, is expected to be a few years after 82% of the community will be built in Sym
  • Ruby/Python/Node.js/(especially) PHP how can do better than Java


Community edition:

Commercial edition:

If you build it, you are welcome to add your site to this list by Pull Request :-p


Specific function point details can be viewed at Sym 功能点脑图, the following lists the main features of Sym, and illustrates why Sym is modern.

Good editors


  • Markdown: support GFM syntax and some extended syntax
  • format adjustment: bold, italics, hyperlinks, references, etc. the list toolbar button also supports shortcut keys
  • file upload: support for copy and paste or drag and drop to upload pictures; support for uploading ordinary files; MP3 will use the online player for rendering
  • clipboard processing: automatically copy the contents of the conversion to Markdown format; the image of the chain automatically uploaded to the station
  • @ username: according to the automatic completion, support shortcut key
  • Emoji: most of the mainstream support for Emoji expression, shortcut keys for automatic completion
  • mathematical formula: support LaTex mathematical formula rendering
  • data temporary local browser: support for temporary storage of data, to avoid accidental edits lost

Intelligent and flexible information architecture


The traditional node type community requires the post must belong to a node, the information architecture is top-down. Sym is not a top-down node type information architecture, the post does not require a fixed classification, through the tag to aggregate into a domain.

  • tag: according to the content of the post intelligent extraction keyword tag automatic completion, a post to multiple tags. The structure of the graph with edge weight is described, which is convenient to calculate the correlation
  • domain: a domain contains multiple tags, tags will automatically by post polymerization to specific areas, at any time can increase and decrease the associated tags so as to adjust the scope of the domain, for the final polymerization card list

To meet the diverse needs of post


Currently supports 4 types of posts, to meet the different user preferences:

  • General Post: ask or share experiences and insights that help others
  • Thoughts: to record and replay the writing process, the text version of the watch (?)
  • Private Discussion: invite friends to communicate in a private space
  • City Broadcast: the recruitment of your city, Meetup, etc.

In addition, all posts can be set playing area, it can be placed some "treasure" content, only after the user can enjoy the reward. Play area editor also supports Markdown, Emoji and file upload and other characteristics. Play area to support content updates, and can adjust the value at any time.

For testing posts, you can use the Sandbox mechanism: with the Sandbox tag posts will be considered as a test post, will not show in the home or in a field, will only show in the post of their own posts list.

Humanized interactive replies


  • in real time: replies submitted after the other readers can not refresh the page to see your reply in time
  • floating scroll: at any time at any time convenient reply editor replies to scroll the screen to see other content, do not have to worry about losing focus
  • real reply: reply for the reply, which is based on the user @, @ is not mentioned in reply, many systems are not considering this point. Reply / reference can be carried through in the current position, can also jump to reply, and support for cross page jump
  • intelligent robots: robots can also send in a discussion and active atmosphere at the same time maybe robots can really solve some problems

User personalization


Users can set a lot of parameters to meet the individual needs:

  • customizes size of a list per page
  • replies: the traditional browsing mode (press release time ascending, real-time push refresh); real time (press release time DESC, real-time push new replies)
  • picture browse mode: original (GIF support graph); static map
  • Chrome notification / message subscription / keyboard shortcut switch
  • set commonly used Emoji, to facilitate the release of the contents of the rapid insertion of expression

In addition to the function of personalized configuration items, there are a lot of privacy switch:

  • whether public posts / replies list
  • do you have a public focus on the users / tags / fans, the collection posts, and the list of points
  • is open online
  • whether public UA information
  • whether public geographic location
  • whether to participate in the wealth / consumption ranking

In addition, users can also complete export data, including posts and replies.

Edit history and anonymous posting


Post/reply can be updated, but each update will produce a history of editing, visitors can see and compare the changes in its content.

Posts and replies can be used to publish anonymous identity, you know.

Search engine friendly

  • tags, fields can be custom links, and can be individually configured with title/keywords/description meta
  • back end Markdown rendering, output crawler readable HTML
  • administrator settings browsing permissions do not affect the crawler crawl content
  • through some HTML details properties (such as canonical) for SEO

Real-time message notification


  • to display messages by category, mark has read
  • with the message type: receive replies, receive a reply, @ I, I pay attention to people, integral city, information systems and other related
  • friendly Chrome desktop alerts

Fun activities


  • receive attendance awards, receive an active reward yesterday
  • Shanghai Lottery
  • Word (?)
  • Snake

Follow up will continue to add some fun online games.

Powered management console


  • background: data statistics, version check
  • user management: search users, add users, user data maintenance (state settings, points, etc.)
  • post management: add new search posts, posts, post maintenance data (top, rebuild index etc.)
  • replies Management: setting up, update
  • domain management: add fields, field data maintenance (associated labels, icons, URI, CSS, description, etc.)
  • label management: add tags, tag data maintenance (pictures, URI, CSS, description, etc.)
  • keep word management: add the reserved word, keep the word data maintenance
  • invitation code management: generate invitation code, invitation code data maintenance
  • advertising management: sidebar exclusive booth maintenance
  • other management post / replies: open / close / switch; user registration invitation code switch

Open content API

Sym API synchronous posts, replies B3log idea, the Solo, Typecho, Z-BlogPHP, WordPress have provided plug-ins to content synchronization, welcome to access!

In the future will be added to the new interface, to facilitate the production of APP client or some of the value of the application.

Integrated cloud mail service


Through the configuration can be integrated SendCloud cloud mail service, the service rate is more reliable to build their own mail service.

  • user login authentication, password reset by trigger type
  • weekly subscription push through batch type

Integrated cloud search service


  • through the configuration can be integrated Algolia cloud search service, can customize the search field, and the weight and ranking optimization
  • can also build their own Elasticsearch and integrated through the configuration

Follow up on the search function to strengthen, to achieve the conditions for filtering, the results highlight, please look forward to.


trust system

Through the historical data to carry on the classification to the user, lets the user gradually change to the participant, the organizer, the management, realizes the autonomous community ecosystem.

badge system

Record the achievements of the users and the contribution to the community.



  • JDK8
  • Maven3+
  • MySQL5.5+
  • Jetty9 or Tomcat9


  1. Download source code
  2. to modify the database after extracting src/main/resources/local.properties configuration, and create a database
  3. may need to modify the latke.properties port for container port
  4. use mvn install to build
  5. to deploy the war package to the container, the database table will be created automatically at the start of the first


  • there is no database table SQL script, manual database, table automatically generated in the first boot
  • production environment is recommended to use reverse proxy, and the need to configure the WebSocket agent
  • Tomcat with more than 9 version, it is best to use the latest version
  • reference Latke 配置剖析


  • image upload the default is to upload the server locally, to use 七牛 can be configured in the qiniu.* attribute symphony.properties
  • mail is sent using SendCloud, you need to configure the sendcloud.* attribute in symphony.properties
  • user registration required to verify the mailbox, so you must first configure the SendCloud

If you encounter problems, you can refer to this post.


Sym is available in two versions:

  • Community version: Open source using AGPLv3. If you choose to use Community Edition, you must fully comply with the related terms of AGPLv3.
  • Commercial version: closed source, offer ¥20000, please contact QQ 845765 or micro signal DL88250 for details

For the comparison between commercial version and community version, please see here, for corporate websites, business websites, websites for profit or profit, please purchase the commercial version.


Everyone can discuss the project through the following ways to help the project development:

We are very much looking forward to your joining the project. Whether it is using feedback or code patches, it is a full of love for Sym :heart:


In the implementation of B3log idea of these years:

  • we have witnessed the rise and fall of xAE (GAE/BAE/SAE/etc). In 2009 GAE was selected as a server, and began to implement Latke framework to solve the cross platform cloud, until GAE, bid farewell to sigh technical change quickly
  • feel the advantages and disadvantages of self-made wheels, and certainly a bit: for a long to product, technology advantages far outweigh the disadvantages of self-made frame
  • a playful product or the details of the characteristics of the egg, it needs to be done is a product / feature that can continue to provide user value.
  • the use of open source software, to understand the idea of open source, into the open source ecology
  • 如果你想做个程序员相关的论坛,请三思
  • 你怎么看待社群、社区这两个词?
  • UGC 社区价值生态


Sym's birth can not be separated from the following open source projects:

Special thanks to security:

And other professionals to give great help!

Next generation community system, build for the future


一个用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)平台。 spread retract


No release




load more
can not load any more