extends ../layout.pug include ../mixins/post.pug block head script(src='/js/theme.js') title Frequently Asked Questions block content h1.board-title FAQ include ../includes/stickynav.pug .table-container.flex-center.mv-5 .anchor table tr th Frequently Asked Questions tr td.post-message b General ul.mv-0 li: a(href='#whats-an-imageboard') What is an imageboard? li: a(href='/rules.html') What are the rules? li: a(href='#site-operation') How do you run the site? b Making posts ul.mv-0 //li: a(href='#how-to-post') How do I make a post? li: a(href='#name-formatting') How do names, tripcodes and capcodes work? li: a(href='#post-styling') What kind of styling options are available when making a post? b Boards, users & permissions ul.mv-0 li: a(href='#make-a-board') How do I make my own board? li: a(href='#staff-and-permissions') How do staff, users and permissions work? .table-container.flex-center.mv-5 .anchor#whats-an-imageboard table tr th: a(href='#whats-an-imageboard') What is an imageboard? tr td p | An imageboard is a type of discussion board where users share images and text about various topics. p | The primary difference between imageboards and traditional forums is that anybody can make a post without registering | an account or providing any personal information. This lowers the barrier to entry, protects user identities and focuses on what is said, rather than who says it. .table-container.flex-center.mv-5 .anchor#name-formatting table tr th: a(href='#name-formatting') Name formatting tr td.post-message p When posting, you can format the name field to include a name, tripcode , capcode, any combination of the three including leaving the field completely blank. Instead of a blank name, "Anonymous" is used, however this depends on board-specific configuration. The optional components are explained below. b Format p | Names should be input like: input(disabled='true' spellcheck='false' type='text' value='Name##Tripcode## Capcode') | . Tripcode and capcode are optional components. Tripcodes and capcodes may not contain "##" and the whitespace before capcodes is significant. p Valid examples: ol.mv-0 li Name li Name##tripcode li Name## Board Owner li Name##tripcode## Board Owner li ##tripcode## Board Owner li ##tripcode li ## Board owner p From the examples, you can see that all components can be used in combination or independently. In a post number 4 would look like: - const examplePost = { "date" : new Date("2019-08-02T09:48:44.180Z"), "name" : "Name", "board" : "example", "tripcode" : "!!X8NXmAS44=", "capcode" : "##Board Owner", "message" : "Hello, world!", "nomarkup" : "Hello, world!", "thread" : 1, "password" : null, "email" : "", "spoiler" : false, "banmessage" : null, "files" : [ ], "reports" : [ ], "globalreports" : [ ], "quotes" : [ ], "backlinks" : [ ], "postId" : 123 } +post(examplePost) p The name appears bold in the top left, followed by the tripcode in regular weight with a !! prefix, then the capcode in a different color, bold and with a ## prefix. The colours may vary between themes but are generally distinct from eachother b Name p The name is simply what name you want to be shown alongside your post. Other users can post with the same name so there is nothing preventing impersonation. This is not related to your username (for registered users). b Tripcode p A tripcode is a password of sorts, which users can provide in the tripcode component of their name. This tripcode is used in conjunction with a server-known secret to generate a unique* tripcode portion of the name. Long, unique tripcodes can be used as a form of identity. It is important that you keep tripcodes secret if you use them for some form of identity. A compromised tripcode can be used for impersonation and cannot be revoked in any way. b Capcode p A capcode is a component of the name field only available to authenticated users. This includes admins, global staff, board owners and board moderators. The capcoded string will be prefixed with the users role so board staff can make an authoritative post and prove their staff status. .table-container.flex-center.mv-5 .anchor#post-styling table tr th(colspan=2): a(href='#post-styling') Post styling tr th Input th Output tr td >greentext td span.greentext >greentext tr td <pinktext td span.pinktext <pinktext tr td ==title== td span.title title tr td ''bold'' td span.strong bold tr td __underline__ td span.underline underline tr td ~~strikethrough~~ td span.strikethrough strikethrough tr td ||spoiler text|| td span.spoiler spoiler text tr td **italic** td span.em italic tr td (((detected))) td span.detected (((detected))) tr td | ``` | code block | ``` td span.code code block tr td `inline monospace` td span.mono inline monospace tr td https://example.com td: a(href='#!') https://example.com tr td >>123 td: a(class="quote" href="#!") >>123 tr td >>>/b/ td: a(class="quote" href="#!") >>>/b/ tr td >>>/b/123 td: a(class="quote" href="#!") >>>/b/123 .table-container.flex-center.mv-5 .anchor#make-a-board table tr th: a(href='#make-a-board') How do I make my own board? tr td p a(href='/register.html') Register | an account, then a(href='/create.html') create a board |. Please avoid making excessive amounts of boards, duplicate or boards similar to an existing one unless you expect that many users will migrate to the new board for whatever reason e.g. tyrannical moderation. .table-container.flex-center.mv-5 .anchor#staff-and-permissions table tr th: a(href='#staff-and-permissions') How do staff, users and permissions work? tr td p | There are 5 levels of permissions on the site: ol(start='0') li Admin: All permissions li Global staff: All permissions excluding news updates li Board owner: Permissions to settings, reports, banners and bans and some post actions li Board moderator: Permissions to reports, bans and some post actions li Regular user: Permissions to some post actions | Post actions refers to reporting, deleting, stickying, etc. More details on these permissions: ol(start='0') li Admin: All actions li Global staff: All below, plus delete files, delete-by-ip-global and global ban li Board owner: Same as board moderator li Board moderator: All below, plus ban, delete-by-ip, sticky/sage/lock/cycle li Regular user: Reports, and post spoiler/delete/unlink if the board has them enabled .table-container.flex-center.mv-5 .anchor#site-operation table tr th: a(href='#site-operation') How is the site run? tr td b Who owns the site? p An Australian guy called Tom. You can check the check the jschan repo for my discord and dig up more about me if you are curious. I also run some other projects including a large discord bot. b Where is the server? p VPS in New York, USA. b Who has access to the server? p Me (Tom) only. b What OS does the server run? p Debian 9 minimal. b How are IP addresses stored? p Jschan stores them hashed and salted, and a substring of this is shown in ban pages and moderation interfaces. Clear IPs are present in Nginx logs and retained for 7 days. b Is the server secure? p Only ports 443 and 80 are open for HTTP(s) and one other port for SSH. Key only login is enabled and root login is disabled. The software is running as an unprivileged users. MongoDB and Redis are configured to listen on local interfaces only and require authentication. b I have an issue/found a vulnerability/need to contact you. p Issues with the software can be posted on the #[a(href='https://github.com/fatchan/jschan/issues') issues page] or if you prefer not to use github, #[a(href='/t/index.html#postform') post on the meta board] with a detailed description of the problem. For private matters or vulnerability reports, please contact me via email tom-69420-me.