All Projects → livechat → Octopus

livechat / Octopus

Licence: mit
🐙 Octopus - Internal wiki with diagrams for software and product teams

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Octopus

React Firebase Starter
Boilerplate (seed) project for creating web apps with React.js, GraphQL.js and Relay
Stars: ✭ 4,366 (+1493.43%)
Mutual labels:  create-react-app, firebase
React Redux Firebase Authentication
🔥Boilerplate Project for Authentication with Firebase in React and Redux
Stars: ✭ 265 (-3.28%)
Mutual labels:  create-react-app, firebase
Web
⚡️ Supercharged version of Create React App with all the bells and whistles.
Stars: ✭ 594 (+116.79%)
Mutual labels:  create-react-app, firebase
React Social Network
Simple React Social Network
Stars: ✭ 409 (+49.27%)
Mutual labels:  create-react-app, firebase
Firefly
Web app boilerplate for beginners based on Firebase and React 🔥
Stars: ✭ 204 (-25.55%)
Mutual labels:  create-react-app, firebase
Todo React Redux
Todo app with Create-React-App • React-Redux • Firebase • OAuth
Stars: ✭ 942 (+243.8%)
Mutual labels:  create-react-app, firebase
React Firebase Authentication
🔥 Boilerplate Project for Authentication with Firebase in React.
Stars: ✭ 863 (+214.96%)
Mutual labels:  create-react-app, firebase
Road Beyond React App
🌈 The Road beyond React - Thing you can use after learning plain React.js
Stars: ✭ 108 (-60.58%)
Mutual labels:  create-react-app, firebase
Todo Redux Saga
Todo app with Create-React-App • React-Redux • Redux-Saga • Firebase • OAuth
Stars: ✭ 184 (-32.85%)
Mutual labels:  create-react-app, firebase
React Mobx Firebase Authentication
🔥Boilerplate Project for Authentication with Firebase in React and MobX
Stars: ✭ 111 (-59.49%)
Mutual labels:  create-react-app, firebase
opPortfolio
A clean portfolio template made with ReactJS.
Stars: ✭ 29 (-89.42%)
Mutual labels:  create-react-app, netlify
react-production-deployment
Deploy your React app to production on Netlify, Vercel and Heroku
Stars: ✭ 51 (-81.39%)
Mutual labels:  create-react-app, netlify
tmpnote
🍒 Share self-destructing encrypted notes
Stars: ✭ 22 (-91.97%)
Mutual labels:  create-react-app, netlify
Create React App Typescript Todo Example 2020
🚀 Create React App TypeScript Todo Example 2020
Stars: ✭ 255 (-6.93%)
Mutual labels:  create-react-app
Aura
GDG/DSCs Community Web App for Management
Stars: ✭ 269 (-1.82%)
Mutual labels:  firebase
awesome-react-app
Always the latest version of "create-react-app" with awesome configurations (lint, commit lint, husk, editor config, etc)
Stars: ✭ 44 (-83.94%)
Mutual labels:  create-react-app
reactathon2017
Information and resources for Reactathon SF 2017
Stars: ✭ 16 (-94.16%)
Mutual labels:  netlify
Node Firestore Import Export
Firestore data import and export
Stars: ✭ 271 (-1.09%)
Mutual labels:  firebase
Setwithfriends
🎮 A frictionless multiplayer web app that lets you play Set with friends
Stars: ✭ 268 (-2.19%)
Mutual labels:  firebase
sqlmap-wiki-zhcn
可能是最完整的 sqlmap 中文文档。
Stars: ✭ 51 (-81.39%)
Mutual labels:  wiki

Octopus

styled with prettier

🐙 Octopus is a server-less, easy-to-setup internal wiki page with built-in software diagrams support. It uses Markdown for writing content and enhances it with Graphviz and flowchart.js diagrams for easy software documentation.

Here's a default wiki page:

Technology

Octopus is a JAMstack app that uses Google Firebase as its backend. You do not need a web server (such as Apache) or a database (like MySQL) to have it up and running. You can deploy the app to a CDN for free using Netlify.

With Octopus, you can:

  • require users to be signed in to read or edit the wiki (supported providers: Google, GitHub, Email/Password, Twitter and Phone),
  • create access rules for reading and editing (restrict particular users or auth domains),
  • host wiki page under a custom domain.

Features

  • create new wiki pages with Markdown language,
  • edit menu (using Markdown) to easily link to wiki pages,
  • include Graphviz and flowchart.js diagrams inside your Markdown content,
  • see who is currently reading your wiki articles,
  • adjust your Wiki front-end with React (create-react-app).

Example system diagram

Page editing with Markdown

Installation

  1. Clone this repository to your computer.
  2. Copy config template file (src/config/config.template.js) to src/config/config.js.
cp src/config/config.template.js src/config/config.js

Note: you can safely commit src/config/config.js file to a repository. This file does not store sensitive credentials - all config variables will be publicly available in the .js file anyway.

  1. Create a new Firebase project here: https://firebase.google.com/
  2. Pick "Add Firebase to your web app" and copy the config to src/config/config.js created in step 2.


  1. In Firebase Console, go to Authentication > Sign-in method, choose a provider and enable it. Octopus has been tested with Google and GitHub providers.


  1. Still in Authentication > Sign-in method section, add the domain that will host your app to Authorized Domains list.


  1. Build the app:
npm install
npm run build
  1. Deploy the build/ directory to your webserver.

Server-less deployment

You can skip hosting the app on your webserver (step 8 from installation guide above). All you need is to deploy the app to a cloud-based CDN provider.

We recommend using Netlify.

It will automatically deploy your forked Octopus GitHub repo to production after each commit. It will also prepare a ready-to-use URL that all your users can access immediately. Later on, you can set up a custom domain to make it look more professional.

Note: when deploying Octopus via Netlify, fill in the following details in the setup wizard:

Build command: npm run build
Publish directory: build

Security

By default, any user can view and edit your wiki page. Probably this is not what you expect!

To make your content accessible only to your company, go to Firebase Console > Database > Rules and restrict who can read and edit your wiki page.

Here's an example rule if you use Google sign-in provider and your company email address ends with @livechatinc.com:



{
  "rules": {
    ".read": "auth.token.email.endsWith('@livechatinc.com')",
    ".write": "auth.token.email.endsWith('@livechatinc.com')"
  }
}

You can read more about possible security rules in Realtime Database Rules documentation.

Using Octopus

Octopus is designed to be very easy to use.

To create a new page, just enter the URL you wish to create, for example: https://<your-octopus-domain>/test/new-page. If such page has not been created yet, you will see the following screen:



When you click "Create this page", new page will be created and filled in with default content, ready to edit:



Once the page is ready, you can easily include it in the menu:



That's it. Send all your teammates link to Octopus and they're ready to contribute!


Project background

Why did we build Octopus?

We've struggled with finding an easy-to-use software for documenting internal systems at LiveChat.

We wanted it to be easy to contribute for non-technical people and include easily editable software diagrams. We couldn't find a satisfying product, so we've built one.

Built with

Changelog

  • 15.09.2017 - "Open as .png" option
  • 13.09.2017 - Initial release

Authors

Bartosz Olchówka / CTO @ LiveChat

License

This project is licensed under the MIT License - see the LICENSE file for details

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].