thesrc

Example of a 3-layer (frontend, API, datastore) Go web app (based on the code that powers https://sourcegraph.com)

  • Owner: sourcegraph/thesrc
  • Platform:
  • License:: MIT License
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

thesrc Build Status docs examples status views

thesrc is a news site for programmers that's intended to be an example of how to
structure a large Go web app. While this app is not large itself, it
demonstrates the same patterns as in the web app that powers
Sourcegraph.com.

The web application architecture and patterns demonstrated here were presented
in a talk at Google I/O 2014 entitled Building Sourcegraph, a large-scale code
search engine in Go
. See that talk for more details.

thesrc has a few special features of interest to programmers:

  • just the good stuff: an automated classifier rejects links that don't contain code or involve programming;
  • not a popularity contest: you can only see a link's score by mousing over it for a couple of seconds, and (TODO) freshly posted links are randomly rotated into the homepage;

Browse the code on Sourcegraph.

Installation

Use the thesrc command to interact with the app.

You can either run it directly:

go get -u sourcegraph.com/sourcegraph/thesrc/...
thesrc

Or inside Docker:

docker build -t thesrc && docker run thesrc

If you want to run it in Docker, substitute docker run thesrc for every
instance of thesrc. (Also note that you'll have to pass Docker the necessary
PG* environment variables to connect to the PostgreSQL database.)

Running

First, set the PG* environment variables so that psql works.

Then run these commands to create the DB, import posts from other sites, and classify their links:

# start the server:
thesrc -url=http://localhost:5000 serve

# then, in a separate terminal window, run:
thesrc -url=http://localhost:5000 createdb
thesrc -url=http://localhost:5000 import
thesrc -url=http://localhost:5000 classify

# now open your browser to localhost:5000

Main metrics

Overview
Name With Ownersourcegraph/thesrc
Primary LanguageGo
Program languageGo (Language Count: 3)
Platform
License:MIT License
所有者活动
Created At2014-07-23 01:17:24
Pushed At2015-02-19 11:42:10
Last Commit At2015-02-19 03:42:08
Release Count0
用户参与
Stargazers Count396
Watchers Count98
Fork Count28
Commits Count65
Has Issues Enabled
Issues Count10
Issue Open Count3
Pull Requests Count4
Pull Requests Open Count0
Pull Requests Close Count2
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private