Commit c49e9b33 authored by zauberstuhl's avatar zauberstuhl

Add development guide and index page

parent 7f405515
theme: jekyll-theme-dinky
\ No newline at end of file
title: GangGo
description: A Decentralized Social Network
show_downloads: true
slug: ganggo/updater
theme: jekyll-theme-dinky
<!DOCTYPE html>
<html lang="{{ site.lang | default: "en-US" }}">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="chrome=1">
{% seo %}
<link href=',700,400italic' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="{{ '/assets/css/style.css?v=' | append: site.github.build_revision | relative_url }}">
<script src="/js/jquery-3.2.1.min.js"></script>
<script src="{{ '/assets/js/scale.fix.js' | relative_url }}"></script>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<!--[if lt IE 9]>
<script src="//"></script>
(function() {
var apiUrl = "{{ site.github.slug }}/releases/latest";
$.getJSON(apiUrl).done(function (release) {
$.each(release.assets, function(index, asset) {
var a = $("<a>").attr("class", "buttons")
.attr("href", asset.browser_download_url)
.append(release.tag_name + " " +;
var li = $("<li>").attr("style", "height:30px")
.attr("class", "download").append(a);
// append download link to the menu
{% assign navigation_pages = site.html_pages | sort: 'navigation_order' %}
{% for page in navigation_pages %}
{% if page.navigation_order %}
<li><a class="buttons" href="{{ page.url }}">{{ page.title }}</a></li>
{% endif %}
{% endfor %}
<ul id="downloadBtns">
{% if site.show_downloads %}
{% include latest_release.html %}
{% endif %}
<li><a class="buttons github" href="{{ site.github.slug }}">View On GitHub</a></li>
{% include header.html %}
<div class="wrapper">
<h1 class="header">{{ site.title | default: site.github.repository_name }}</h1>
<p class="header">{{ site.description | default: site.github.project_tagline }}</p>
{% include navigation.html %}
{% if site.github.is_project_page %}
<p class="header">This project is maintained by <a class="header name" href="{{ site.github.owner_url }}">{{ site.github.owner_name }}</a></p>
{% endif %}
{% if site.github.is_user_page %}
<li><a class="buttons github" href="{{ site.github.owner_url }}">GitHub Profile</a></li>
{% endif %}
{{ content }}
<!--[if !IE]><script>fixScale(document);</script><![endif]-->
{% include footer.html %}
title: Development
layout: default
navigation_order: 2
# Dependencies
* GoLang [](
* NodeJS/NPM [](
After downloading and installing both dependencies do not forget to setup your go-environment:
export GOROOT=/opt/golang
export GOPATH=$HOME/.golang
export PATH=$PATH:$GOPATH/bin
This will ensure that all source files and binaries will be placed in `$GOPATH` and will be available in your shell via your `$PATH`-variable.
Finally we can execute `make` to fetch the rest of the npm/GoLang dependencies:
VERSION=v0 MODE=prod make install-deps
Depending on your internet connection, that could take a while.
# Workspace
Assuming we want to work on the API, Federation and application server we should
create a workspace first:
mkdir -p ~/workspace/ganggo
cd ~/workspace/ganggo
git clone --depth=1
git clone --depth=1
git clone --depth=1
Since `go build` will only build within `$GOPATH` we remove the previouse downloaded libs and create three symlinks to our workspace:
rm -r $GOPATH/src/ $GOPATH/src/ $GOPATH/src/
ln -s $GOPATH/src/ ~/workspace/ganggo/ganggo
ln -s $GOPATH/src/ ~/workspace/ganggo/api
ln -s $GOPATH/src/ ~/workspace/ganggo/federation
That's it! You can switch into `~/workspace/ganggo/ganggo` now and start the web-server by running:
revel run
## Updater
If you want to build the update-wrapper as well switch into your workspace and fetch the repository:
cd ~/workspace/ganggo
git clone --depth=1
Assuming you already installed all dependencies and followed the above examples you can build a new release with:
VERSION=v0 MODE=prod make release
The `VERSION` flag is used to identify different software versions via []( and `MODE` will decide whether the server runs in prod (production) or dev (development) mode.
## Welcome to GitHub Pages
title: Home
layout: default
navigation_order: 1
You can use the [editor on GitHub]( to maintain and preview the content for your website in Markdown files.
# {{ site.title }} - {{site.description}}
Whenever you commit to this repository, GitHub Pages will run [Jekyll]( to rebuild the pages in your site, from the content in your Markdown files.
GangGo is a decentralized social network written in [GoLang]( It uses the same federation library like [Diaspora]( and therefore can participate in conversations like any other [Pod](!
### Markdown
> This is the application server repository. Which is still
> in pre-alpha state so please don't use it for production!
Markdown is a lightweight and easy-to-use syntax for styling your writing. It includes conventions for
## Usage
Syntax highlighted code block
Fetch the latest updater version from []( and execute it. It will come with a small installation wizard and guide you through the first steps.
# Header 1
## Header 2
### Header 3
## Contribution
- Bulleted
- List
If you want to push your changes to the offical ganggo repository:
1. Numbered
2. List
**Bold** and _Italic_ and `Code` text
[Link](url) and ![Image](src)
For more details see [GitHub Flavored Markdown](
### Jekyll Themes
Your Pages site will use the layout and styles from the Jekyll theme you have selected in your [repository settings]( The name of this theme is saved in the Jekyll `_config.yml` configuration file.
### Support or Contact
Having trouble with Pages? Check out our [documentation]( or [contact support]( and we’ll help you sort it out.
* follow the [development guide](/development.html)
* fork the project
* create a new branch with your code changes
* create a [pull request](
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment