├── redis ├── README.md ├── redis.conf └── Dockerfile ├── qless-web ├── qless-0.10.0.pre.gem ├── run ├── README.md └── Dockerfile └── rippled ├── Dockerfile └── rippled.conf /redis/README.md: -------------------------------------------------------------------------------- 1 | redis 2.8 configured to fsync on every write. 2 | 3 | Exposes data volume on /var/lib/redis. 4 | -------------------------------------------------------------------------------- /qless-web/qless-0.10.0.pre.gem: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adaptive/wasipaid_dockerfiles/master/qless-web/qless-0.10.0.pre.gem -------------------------------------------------------------------------------- /qless-web/run: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # --no-launch refers to the browser 4 | REDIS_URL="$REDIS_URL" qless-web --foreground --no-launch 5 | -------------------------------------------------------------------------------- /qless-web/README.md: -------------------------------------------------------------------------------- 1 | Runs the qless webinterface: 2 | https://github.com/seomoz/qless 3 | 4 | Specify the Redis instance to connect to using a *REDIS_URL* environment variable: 5 | 6 | $ docker run -e REDIS_URL="redis://some-host:7000/3" elsdoerfer/qless-web 7 | -------------------------------------------------------------------------------- /redis/redis.conf: -------------------------------------------------------------------------------- 1 | # One of our primary concerns is no data loss: We MUST use the appendonly 2 | # log and fsync ON EVERY REQUEST! 3 | appendonly yes 4 | appendfsync everysec 5 | 6 | # Enable snapshotting as an extra bonus for pulling backups 7 | save 60 1000 8 | 9 | # Have a well-defined location for this data such that we can make it a volume 10 | dbfilename dump.rdb 11 | dir /var/lib/redis 12 | -------------------------------------------------------------------------------- /redis/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:12.04 2 | 3 | # Add PPA for Redis 2.8; add-apt-repository has a huge dep list, do it manually 4 | RUN echo "deb http://ppa.launchpad.net/chris-lea/redis-server/ubuntu precise main" >> /etc/apt/sources.list 5 | RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-key C7917B12 6 | 7 | # Install Redis 8 | RUN apt-get update 9 | RUN apt-get -y upgrade 10 | RUN apt-get -y install redis-server 11 | 12 | # Install our custom config 13 | ADD redis.conf /etc/redis/redis.conf 14 | 15 | # Persist the volume 16 | VOLUME /var/lib/redis 17 | 18 | EXPOSE 6379 19 | CMD ["redis-server", "/etc/redis/redis.conf"] 20 | -------------------------------------------------------------------------------- /rippled/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:12.04 2 | 3 | # Add package sources 4 | RUN apt-get -y install python-software-properties 5 | RUN add-apt-repository ppa:ubuntu-toolchain-r/test 6 | RUN echo "deb http://archive.ubuntu.com/ubuntu precise universe" >> /etc/apt/sources.list 7 | 8 | 9 | RUN apt-get update 10 | RUN apt-get -y upgrade 11 | 12 | 13 | # Various dependencies 14 | RUN apt-get -y install pkg-config 15 | RUN apt-get -y install git 16 | RUN apt-get -y install scons 17 | RUN apt-get -y install ctags 18 | RUN apt-get -y install libboost1.48-all-dev 19 | RUN apt-get -y install protobuf-compiler 20 | RUN apt-get -y install libprotobuf-dev 21 | RUN apt-get -y install libssl-dev 22 | 23 | # Upgrade to gcc-4.7 (after some other package pulls in gcc) 24 | RUN apt-get -y install gcc-4.7 g++-4.7 25 | RUN rm -f /usr/bin/gcc && ln -s /usr/bin/gcc-4.7 /usr/bin/gcc 26 | RUN rm -f /usr/bin/g++ && ln -s /usr/bin/g++-4.7 /usr/bin/g++ 27 | 28 | 29 | # Checkout the ripple source 30 | RUN git clone https://github.com/ripple/rippled.git /opt/rippled -b release 31 | RUN cd /opt/rippled && scons build/rippled 32 | 33 | 34 | # peer_port 35 | EXPOSE 51235 36 | # websocket_public_port 37 | EXPOSE 5006 38 | # websocket_port (trusted access) 39 | EXPOSE 6006 40 | 41 | 42 | # Share the ripple data directory 43 | VOLUME /var/lib/rippled 44 | 45 | # Add custom config 46 | ADD rippled.conf /opt/rippled/build/rippled.conf 47 | 48 | CMD ["/opt/rippled/build/rippled", "--conf", "/opt/rippled/build/rippled.conf"] 49 | 50 | 51 | -------------------------------------------------------------------------------- /qless-web/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:12.04 2 | 3 | RUN apt-get update 4 | RUN apt-get -y upgrade 5 | 6 | # We'll be needing to compile native Ruby extensions (thin/EventMachine). 7 | # Put it up here for re-use. 8 | RUN apt-get -y install build-essential 9 | 10 | # Install ruby and rubygems 11 | RUN apt-get -y install rubygems1.9.1 12 | # Again, ruby dev libs required to build EventMachine. 13 | RUN apt-get -y install ruby1.9.1-dev 14 | 15 | # We need the git version of qless, since the released one is old and broken. 16 | # Installing from git on the server is a mess, so I simply prebuilt the gem, 17 | # using version 038a438f73d7af2c82541cdc0b1c5d12879a7bad and the command: 18 | # "gem build qless.gemspec". 19 | ADD qless-0.10.0.pre.gem /tmp/qless-0.10.0.pre.gem 20 | RUN gem install --no-ri --no-rdoc /tmp/qless-0.10.0.pre.gem 21 | 22 | # There are more dependencies that the current git version packaged here 23 | # does not seem to properly declare, see: 24 | # https://github.com/seomoz/qless/issues/172 25 | RUN gem install --no-ri --no-rdoc sinatra -v "~>1.3.2" 26 | RUN gem install --no-ri --no-rdoc vegas -v "~>0.1.1" 27 | 28 | # I'm guessing this may be legitimately not included in the gem. 29 | # It's probably like gunicorn. 30 | RUN gem install thin --no-ri --no-rdoc 31 | 32 | 33 | # HTTP 34 | EXPOSE 5678 35 | 36 | 37 | # Giving the redis url to qless-web can be done via an environment variable 38 | # (alternative: --url-file option). We need to have a runner script for this. 39 | ADD run /qless-web 40 | 41 | 42 | CMD ["/qless-web"] 43 | -------------------------------------------------------------------------------- /rippled/rippled.conf: -------------------------------------------------------------------------------- 1 | # Allow other peers to connect to this server. 2 | # 3 | [peer_ip] 4 | 0.0.0.0 5 | 6 | [peer_port] 7 | 51235 8 | 9 | # Allow untrusted clients to connect to this server. 10 | # 11 | [websocket_public_ip] 12 | 0.0.0.0 13 | 14 | [websocket_public_port] 15 | 5006 16 | 17 | # Provide trusted websocket ADMIN access to the localhost. 18 | # 19 | [websocket_ip] 20 | 127.0.0.1 21 | 22 | [websocket_port] 23 | 6006 24 | 25 | # Provide trusted json-rpc ADMIN access to the localhost. 26 | # 27 | [rpc_ip] 28 | 127.0.0.1 29 | 30 | [rpc_port] 31 | 5005 32 | 33 | [rpc_allow_remote] 34 | 0 35 | 36 | [node_size] 37 | tiny 38 | 39 | [ledger_history] 40 | 256 41 | 42 | # Note that HyperLevelDB is unavailable on Windows platforms 43 | # 44 | [node_db] 45 | type=HyperLevelDB 46 | path=/var/lib/rippled/hyperldb 47 | 48 | [database_path] 49 | /var/lib/rippled 50 | 51 | #[debug_logfile] 52 | #log/debug.log 53 | 54 | [sntp_servers] 55 | time.windows.com 56 | time.apple.com 57 | time.nist.gov 58 | pool.ntp.org 59 | 60 | # Where to find some other servers speaking the Ripple protocol. 61 | # This set of addresses is recent as of September 5, 2013 62 | # 63 | [ips] 64 | 54.225.112.220 51235 65 | 54.225.123.13 51235 66 | 54.227.239.106 51235 67 | 107.21.251.218 51235 68 | 184.73.226.101 51235 69 | 23.23.201.55 51235 70 | 71 | 72 | # I remember having trouble with this, might work just fine though. 73 | #[validators_site] 74 | #ripple.com 75 | 76 | # Instead, provide a manual list of validators 77 | [validators] 78 | n9KPnVLn7ewVzHvn218DcEYsnWLzKerTDwhpofhk4Ym1RUq4TeGw 79 | n9LFzWuhKNvXStHAuemfRKFVECLApowncMAM5chSCL9R5ECHGN4V 80 | n94rSdgTyBNGvYg8pZXGuNt59Y5bGAZGxbxyvjDaqD9ceRAgD85P 81 | n9LeQeDcLDMZKjx1TZtrXoLBLo5q1bR1sUQrWG7tEADFU6R27UBp 82 | n9KF6RpvktjNs2MDBkmxpJbup4BKrKeMKDXPhaXkq7cKTwLmWkFr 83 | 84 | # This is totally necessary. 85 | [validation_quorum] 86 | 3 87 | 88 | --------------------------------------------------------------------------------