Giter VIP home page Giter VIP logo

systems's Introduction

================================

Build Status

This repository contains the server and the static web files (html,css,js) for Nulpunt

For more information about Nulpunt, please visit nulpunt.nu

Quickstart

  1. Install go
  2. Install MongoDB
  3. Fork the repository on GitHub
  4. Clone to local machine: git clone [email protected]:YOUR-USERNAME/nulpunt.git
  5. Execute: cd nulpunt
  6. Execute: GOPATH=$(PWD)/gopath go build npserver
  7. Run npserver: ./npserver

For changes to go code, you must recompile and restart the server (steps 5 and 6). Changes to html/css/js only need browser refresh.

Closed repo

The development of this application is closed fow now. If you know someone that wants to join, please ask an Owner (GeertJohan) to add this person to the "Contributors" team.

Development

Nulpunt consists of a seperate server and client web-application. The client web-application is a standalone SPA (Single Page Application). The server exposes a set of services to the client. The server uses MongoDB as a database, it's outline/structure is defined here.

Please view the issues on this repo. If you have an idea or suggestion, please create a new issue.

Server development

Go

The server is written using the go programming language. For more information, visit golang.org.

Go dependencies (packages/libraries)

This project uses several third-party dependencies. Such as the mgo driver for MongoDB. These dependencies (third-party packages) are to be imported by nulpunt code with their fully qualified import name (e.g. labix.org/v2/mgo). We are keeping the source for imported packages within this repository for several reasons:

  • A commit can always refer to the right version of a third-party package, because it is included in the commit.
  • New third-party code must go through a PR, and can easily be checked.
  • Project will still build when remote dependency is unreachable or removed.

You can permanently set the GOPATH for this project in your .profile file or .bashrc file.

Client development

The client, or "front-end", is written using HTML, CSS and Javascript. The client uses several existing projects/libraries to make things easier.

AngularJS

It is important to understand how AngularJS works because this is the foundation for the nulpunt client application. If you have not worked with AngularJS yet, please folow some basic tutorials (scroll down), it's very easy to pick up.

How to contribute

  1. Fork this repository on GitHub and clone to local.
  2. Create a new branch and start developing
  3. Make sure that the code is formated according to go fmt.
  4. Push your branch+changes to github and create a pull request.
  5. Pull request is automatically built by Jenkins.
  6. When PR is approved, it is merged into the master branch.
  7. Repeat from step 2 for each bugfix/feature.

CI

We have jenkins!

Jenkins performs two tasks:

  • Run build and tests for each new PR (and new commits in that PR), then report status back to Github.
  • Run nightly build and restart nightly when repository has changed (PR merged in).

OCR process

The quickstart and server instructions above do not include the OCR process (npanalyse). To get npanalyse up and running, perform the following:

  1. Install go.leptonica dependencies as explained here
  2. Install go.tesseract dependencies as explained here
  3. Install and run nsqlookupd and nsqd with their defaults (localhost): follow this quick start.
  4. Change dir into the root of your nulpunt repository clone
  5. Build npanalyse: GOPATH=$(pwd)/gopath go build npanalyse
  6. Install xpdf-utils, on Debian: apt-get install xpdf-utils, we need pdftoppm in it.
  7. Run npanalyse: ./npanalyse

Copyright

Nulpunt is licensed under the AGPL version 3 license, except for third-party works as listed in the attribution file. For developer information about copyright, view the copyright-info file.

systems's People

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

systems's Issues

Upgrade apache2 to 2.4.7-1

From:   Debian testing watch <[email protected]>

To: [email protected]
Subject: apache2 2.4.7-1 MIGRATED to testing
Date: Tue, 04 Feb 2014 16:39:11 +0000 (04/02/14 17:39:11)

FYI: The status of the apache2 source package
in Debian's testing distribution has changed.

Previous version: 2.4.6-3
Current version: 2.4.7-1

This email is automatically generated once a day. As the installation of
new packages into testing happens multiple times a day you will receive
later changes on the next day.
See http://release.debian.org/testing-watch/ for more information.

Manually merge /etc/default/jenkins with upstream changes

--- /etc/default/jenkins 2013-09-20 23:51:42.294893335 +0200
+++ /etc/default/jenkins.dpkg-new 2014-01-13 17:08:19.000000000 +0100
@@ -7,6 +7,7 @@
JAVA=/usr/bin/java

arguments to pass to java

+JAVA_ARGS="-Djava.awt.headless=true" # Allow graphs etc. to work even when an
X server is present
#JAVA_ARGS="-Xmx256m"
#JAVA_ARGS="-Djava.net.preferIPv4Stack=true" # make jenkins listen on IPv4 addr
ess

@@ -38,12 +39,10 @@
MAXOPENFILES=8192

port for HTTP connector (default 8080; disable with -1)

-HTTP_PORT=-1
-HTTPS_PORT=-1
+HTTP_PORT=8080

port for AJP connector (disabled by default)

-AJP_ADDRESS=127.0.0.1
-AJP_PORT=8102
+AJP_PORT=-1

servlet context, important if you want to use apache proxying

PREFIX=/jenkins
@@ -58,4 +57,4 @@

--webroot=~/.jenkins/war

--prefix=$PREFIX

-JENKINS_ARGS="--webroot=/var/cache/jenkins/war --httpPort=$HTTP_PORT --httpsPort=$HTTPS_PORT --ajp13ListenAddress=$AJP_ADDRESS --ajp13Port=$AJP_PORT"
+JENKINS_ARGS="--webroot=/var/cache/jenkins/war --httpPort=$HTTP_PORT --ajp13Port=$AJP_PORT"

Setup script to run npserver nightly

Should somehow "watch" the nightly built binary, or restart the npserver-nightly when the builtjob by jenkins has completed successfully.

Isn't there a good jenkins plugin for this?
Would be nice to have application logs (stdout, stderr ??) accessable through jenkins or other secured web-interface.

edi.nulpunt.nu does not have SSHFP records

Should have:

edi.nulpunt.nu. 86400 IN SSHFP 3 1 7b449cc276913953e5a5e050307c4286a572d302

edi.nulpunt.nu. 86400 IN SSHFP 3 2 aff6bc5d4bc86c6fed3beb6d5ffef35280e79f31c2b5cf07f3e16d1dd7032656

nulpunt.nu does not have an RRSIG record

alderaan% dig nulpunt.nu rrsig

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> nulpunt.nu rrsig
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22662
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 3, ADDITIONAL: 2

;; QUESTION SECTION:
;nulpunt.nu. IN RRSIG

;; AUTHORITY SECTION:
nulpunt.nu. 81536 IN NS ns2.gigasyte.nl.
nulpunt.nu. 81536 IN NS ns1.gigasyte.nl.
nulpunt.nu. 10800 IN SOA ns1.gigasyte.nl. hostmaster.gigasyte.nl. 2012060106 14400 3600 604800 86400

;; ADDITIONAL SECTION:
ns1.gigasyte.nl. 86394 IN A 82.192.67.204
ns2.gigasyte.nl. 86394 IN A 85.17.41.33

;; Query time: 40 msec
;; SERVER: 212.115.192.193#53(212.115.192.193)
;; WHEN: Sun Sep 15 18:04:51 2013
;; MSG SIZE rcvd: 154

This lacking record means that there is currently no support for DNSSEC, which leaves users vulnerable to DNS spoofing.

RFC for implementation: http://www.ietf.org/rfc/rfc4033.txt

Apache uses the secp521r1 curve.

Internet Explorer supports secp521r1 but does not include this in its ClientHello causing Apache to drop the connection. Needs to downgrade to secp384r1 and be tested on Windows machines.

Fix DKIM signature.

exim paniclog /var/log/exim4/paniclog on edi.nulpunt.nu has non-zero size, mail system might be broken. The last 10 lines are quoted below.

2013-09-26 23:05:47 1VPIks-0003kj-Dl DKIM: signing failed (RC -101)
2013-09-26 23:52:08 1VPJTj-0005Gw-9m DKIM: signing failed (RC -101)
2013-09-27 00:07:19 1VPJTj-0005Gw-9m DKIM: signing failed (RC -101)
2013-09-27 00:30:23 1VPK4k-0006Vs-G9 DKIM: signing failed (RC -101)
2013-09-27 00:36:47 1VPKAv-00072i-25 DKIM: signing failed (RC -101)
2013-09-27 00:37:57 1VPKC4-00077w-8O DKIM: signing failed (RC -101)
2013-09-27 02:36:45 1VPM31-0001GS-Hr DKIM: signing failed (RC -101)
2013-09-27 02:37:43 1VPM3w-0001GY-Cp DKIM: signing failed (RC -101)
2013-09-27 03:01:41 1VPM3w-0001GY-Cp DKIM: signing failed (RC -101)
2013-09-27 03:01:41 1VPM31-0001GS-Hr DKIM: signing failed (RC -101)

Setup etcd

I'd like to use etcd synchronize data between instances. As with nsqd, this application sadly does not have a debian package.

apache2 does not support multi-level OCSP stapling

This is an upstream issue.

apache2 currently does not implement the Multiple Certificate Status Extension as defined in RFC 6961. OCSP stapling is imperative to prevent users from polling the CA continuously for CRL's, which is a potential privacy issue and adds overhead when connecting with TLS.

Upstream should be polled regularly for support to the apache2 httpd and implemented on edi as soon as possible.

This issue is marked as invalid and wontfix (since the ball lies with upstream), but should not be closed until it is resolved.

Technical details: http://www.ietf.org/rfc/rfc6961.txt

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.