Home - NETESOLUTIONS/ERNIE GitHub Wiki
Welcome to the ERNIE Wiki!
ERNIE (Enhanced Research Network Informatics Environment) SBIR/NIDA project
See ERNIE private team Wiki for:
- Setup
- SSH
- Yubikey
- Operational Runbook
ERNIE has a single Dev/Prod environment. Access to all servers is limited to SSH (port 22). Services running on other ports can be accessed over SSH tunnels.
- ERNIE Jenkins
- ERNIE Neo4j
- ERNIE Upsource
- ERNIE home page: published via GitHub Pages
- Hosting at Microsoft Azure (NETE Azure Pay-As-You-Go subscription)
- Azure Dashboard
Obtain server DNS names from a team member.
- OS: CentOS 7 Linux
-
ernie2
- Standard D16s v3 (16 vcpus, 64 GiB memory)
- 7 x 1 TB disks + the 32 GB OS disk
-
ernie3
(on-demand, restore from the latest backup to provision)- Standard DS15 v2 (20 vcpus, 140 GiB memory)
- 2 x 1 TB disks + the 32 GB OS disk
-
ernie-neo4j
(on-demand, restore from the latest backup to provision)- Standard E16s v3 (16 vcpus, 128 GiB memory)
- 1 TB disk + the 32 GB OS disk
The servers are accessible over the Internet using SSH keys and two-factor authentication with Google Authenticator. Here are the steps to get access:
- Generate SSH keys, if you don't have them:
ssh-keygen -t rsa -b 2048 -C "{your_email}@nete.com"
- Have your Linux account created.
- Give your public key (
~/.ssh/id_rsa.pub
) to a team member to add on the server to~/.ssh/authorized_keys
- Have a team member generate your Google Authenticator key.
- Run:
sudo -u {user} google-authenticator --time-based --force --disallow-reuse --window-size=3 --rate-time=30 --rate-limit=3
- The generated QR code could be scanned with Authenticator mobile app by Google to install the key.
- Run:
- Install Authenticator mobile app (by Google) and add a Time Based account using that key.
-
ssh -i ~/.ssh/id_rsa {user}@{server}
.- You should be first prompted for the SSH key passphrase (which could be stored in Mac keychain).
- Then you should be prompted for "Verification code". Enter code from Google Authenticator.
- From now on you can connect as usual:
ssh {user}@{server}
.
- This Wiki runs on GitHub Wiki engine that supports 9 types of Wiki markup. The convention is to use MediaWiki markup which is the one that should be most familiar to team members.
- Advanced help (e.g. how do I make a pre-formatted block inside a numbered list?) could be obtained at MediaWiki Editing FAQ
- If you prefer, you can use Markdown markup. See GitHub help or the latest CommonMark spec for more details on GitHub-Flavored Markdown (GFM). You can use Pandoc if you need to convert a particular page between MediaWiki and GFM markups.
On top of MediaWiki markup, GitHub Wiki performs post-processing extending out-of-the-box MediaWiki capabilities. The following are the differences:
- Triple-backquote syntax for code blocks. Syntax highlighting could be done for a wide variety of programming languages. Some of the languages actually used in the code snippets on this Wiki are:
- JSON
- XML
- HTML
- PLSQL
- PLpgSQL
- SQL (Transact-SQL is currently not supported)
- Cypher (currently not supported)
- TypeScript
- C#
- Java
- Bash
-
[[Link Text|Full URL]]
syntax for external links.- [] TODO report. This is the only acceptable syntax for external links in headings.
- Embedding of images:
[[{full image URL}]]
. The URL must end in an image extension, e.g..png
.- Alternatively you can embed by using a raw
<img>
tag. - If you're embedding an image from a GitHub repo, drill down to the image, then copy/paste a
Download
link. - Images are resized to the current content body width. You can tweak it by including custom width and/or height. Note that, unlike in Markdown, embedded images are not hyperlinked to the full image URL and you need to hyperlink separately.
- Alternatively you can embed by using a raw
-
Emoji: e.g.
:bowtie:
= - Limited use of raw HTML. HTML is sanitized, removing things such as script tags, inline styles, and class or id attributes. See the sanitization filter for the full whitelist.
- When you include content in raw HTML, (most of) regular Wiki markup is automatically ignored inside these tags.
- Custom sidebar and footer which are rendered on every page.
- Sidebar and footer could be directory-specific. However, there seems to be a bug with editing of them.
- Gollum's custom headers are not supported.
- You can use either page titles (e.g.
[[Database Tools]]
) or URL/file names (e.g.[[Database-Tools]]
) in internal Wiki links. - Pure anchor links e.g.
[[#SQL Workbench/J]]
are not supported. Anchor links must include page: e.g.[[Database Tools#SQL_WorkbenchJ]]
. - Spaces in anchor names have to be replaced by underscores.
- Slashes, dashes, single quotes and parentheses in anchor names have to be omitted.
- The double-quote character destroys tables
- MediaWiki Categories are not supported
- Obsolete pages, information on completed projects and technologies no longer in active use by NETE should be moved to the Archive directory using Git. They still would show up in the list of all pages, but will be rendered with a custom Archive footer to highlight them as archived.
- Important (as in mandatory) items are highlighted in bold
- Variable parts are denoted in single braces. For example:
{project directory}
should be substituted by the actual project directory that is applicable to you. - Command line execution is denoted like this:
>command parameters
- If you include command inline and continue the sentence, you can denote it like this:
>command parameters<
in order to separate better from the rest of the sentence.
- If you include command inline and continue the sentence, you can denote it like this:
- SQL execution is denoted like this:
SQL> SQL query
orSQL> @script.sql
- User home (or user profile) directory is denoted like this:
~
. This usually means:/Users/{My account name}
orC:\Users\{My account name}
. - Reasons and explanations are written as sub-bullets in italics:
- This helps to separate them from the main content.
- Tasks, TBD items, etc. are tagged in the beginning of the sentence with the following tags:
-
[ ] FIXME
To do something: a high priority task to complete e.g. before the next release. -
[ ] TODO
To do something: a medium priority task. -
[ ] TBD
To do something: a low priority task. - If you use Markdown, these would render as read-only (non-clickable) task squares.
- Completed tasks are removed from Wiki.
-
Do you think that GitHub Wiki content bodies are too narrow and you have to scroll code samples horizontally?
- GitHub toggle wiki sidebar browser user script allows users to toggle hiding of Wiki sidebars and expanding content to the right.
- GitHub Dark Script browser user script allows users to toggle word-wrapping of triple-backquoted code blocks.