TCP client and multithreaded server in 14 lines of Ruby code
Server:
require "socket"
server = TCPServer.open(2626)
loop do
Thread.fork(server.accept) do |client|
client.puts("Hello, I'm Ruby TCP server", "I'm disconnecting, bye :*")
######################################## | |
# 1. Build nodejs frontend | |
######################################## | |
FROM node:10.9-alpine as build-node | |
# prepare build dir | |
RUN mkdir -p /app/assets | |
WORKDIR /app | |
# set build ENV |
require 'mina/git' | |
set :domain, 'your_domain' | |
set :deploy_to, 'your_path_on_server' | |
set :repository, 'your_git' | |
set :branch, 'master' | |
set :app_name, 'your_app_name' | |
set :shared_paths, ['log'] |
require "socket"
server = TCPServer.open(2626)
loop do
Thread.fork(server.accept) do |client|
client.puts("Hello, I'm Ruby TCP server", "I'm disconnecting, bye :*")
#!/usr/bin/ruby | |
# wol.rb: sends out a magic packet to wake up your PC | |
# | |
# Copyright (c) 2004 zunda <zunda at freeshell.org> | |
# Modified by scharfie <scharfie at gmail dot com> | |
# | |
# This program is free software. You can re-distribute and/or | |
# modify this program under the same terms of ruby itself --- | |
# Ruby Distribution License or GNU General Public License. | |
# |
# build stage | |
FROM golang:alpine AS build-env | |
ADD . /src | |
RUN cd /src && go build -o goapp | |
# final stage | |
FROM alpine | |
WORKDIR /app | |
COPY --from=build-env /src/goapp /app/ | |
ENTRYPOINT ./goapp |
#!/bin/bash | |
# Example for the Docker Hub V2 API | |
# Returns all imagas and tags associated with a Docker Hub user account. | |
# Requires 'jq': https://stedolan.github.io/jq/ | |
# set username and password | |
UNAME="" | |
UPASS="" |
Create a template service file at /etc/systemd/system/secure-tunnel@.service
. The template parameter will correspond to the name
of target host:
[Unit]
Description=Setup a secure tunnel to %I
After=network.target
[Unit] | |
Description=Keeps a tunnel to 'remote.example.com' open | |
After=network.target | |
[Service] | |
User=autossh | |
# -p [PORT] | |
# -l [user] | |
# -M 0 --> no monitoring | |
# -N Just open the connection and do nothing (not interactive) |
Cian Johnston, July 2017
A couple of weeks ago, I decided I should put my gaming rig to work crypto mining. I did not expect to make any significant profit on this, it was more of a fun project to set up. However, there were a large number of tutorials and guides already out there, and many were more than a year out of date.
This guide assumes the reader already has a crypto wallet set up, is comfortable with Linux and the command line, and knows how to use Google if they run into problems.
The end result is an Ubuntu 16.04 LTS headless server running CUDA ethminer via systemd.
# post_loc.txt contains the json you want to post | |
# -p means to POST it | |
# -H adds an Auth header (could be Basic or Token) | |
# -T sets the Content-Type | |
# -c is concurrent clients | |
# -n is the number of requests to run in the test | |
ab -p post_loc.txt -T application/json -H 'Authorization: Token abcd1234' -c 10 -n 2000 http://example.com/api/v1/locations/ |