Commit Graph

59 Commits

Author SHA1 Message Date
Jonathan Leibiusky @xetorthio
d566e5ee05 Reimplement the scheduler to be a lot more reliable 2017-09-13 19:21:06 -03:00
Marcos Lilljedahl
6eacb85fc3 Add missing pieces due to rebase 2017-09-12 17:17:19 -03:00
Marcos Lilljedahl
ddcf5cf7bc Update windows provisioner 2017-09-12 16:59:57 -03:00
Jonathan Leibiusky @xetorthio
954c52471b Refactor storage to support shallow types.
Add Client to storage.
Fix client resizing issues.
2017-09-01 20:12:19 -03:00
Jonathan Leibiusky @xetorthio
438fe9f6e7 Add SessionProvisioner and InstanceProvisionerFactory
Remove AllowedImages and IsDockerHost as it is not really being used for
anything useful
2017-08-24 15:36:59 -03:00
Jonathan Leibiusky @xetorthio
7495f27f64 Change wiring 2017-08-10 12:13:18 -03:00
Marcos Lilljedahl
cbe5ede847 Refactor bootstrap so it's decoupled from main function 2017-08-08 10:38:01 -03:00
Marcos Lilljedahl
8afb922f6d Move handler initialization into the handlers package so it can be
reused
2017-08-07 17:44:25 -03:00
Jonathan Leibiusky @xetorthio
4731d8ec98 Event refactor 2017-07-18 10:45:05 -03:00
Jonathan Leibiusky @xetorthio
d18b11ebd4 Add l2 implementation 2017-07-11 15:05:21 -03:00
Jonathan Leibiusky @xetorthio
f7253a79cd WIP 2017-06-22 17:34:24 -03:00
Jonathan Leibiusky @xetorthio
cd6d172cfa WIP 2017-06-22 09:17:46 -03:00
Jonathan Leibiusky @xetorthio
755e3c7707 Add ssh proxy 2017-06-19 12:00:29 -03:00
Jonathan Leibiusky @xetorthio
f14e3a137d Merge branch 'no_tests' into jonas_master 2017-06-07 10:20:14 -03:00
Jonathan Leibiusky @xetorthio
6d992b5d02 Add session templates 2017-06-06 14:48:26 -03:00
Marcos Lilljedahl
af197ce7c5 Add timeouts to http server 2017-06-02 16:16:45 -03:00
Jonathan Leibiusky @xetorthio
3d96760a98 WIP 2017-05-23 19:29:36 -03:00
Marcos Lilljedahl
31823109a5 Move stack creation when starting session
- If stack is not found return 400 status code
2017-05-16 14:09:15 -03:00
Marcos Lilljedahl
a6c19e451f Remove duplicated regex and unused function 2017-05-15 14:30:42 -03:00
Marcos Lilljedahl
88107bf576 Merge branch 'mikesir87-128-replace-underscores-in-urls' 2017-05-12 16:26:03 -03:00
Jonathan Leibiusky
8df6373327 HTTPS and File Uploads (#139)
* Add a few fixes

* Use CopyToContainer instead of bind mounts

* Remove a local compose file

* Changes according to the comments

* Rebase with master
2017-05-12 16:20:09 -03:00
Marcos Nils
61a0bb4db1 Add support for setting alias when creatign instance. (#140)
* Add support for setting alias when creatign instance.

The POST to create a instance now provides an `alias` field which
then can be used to access the instance services through the following
URL:

`http://<alias>-<short_session>-<port>.<tld>`

When creating a session you can now send an `alias`

* Remove unnecessary function

* Add alias support for DNS resolution
2017-05-11 17:39:17 -03:00
Marcos Nils
62c5d3761d Add support for setting stacks when creating session (#138)
* Add support for setting stacks when creating session

* Add exec endpoint and move dns stuff to another package

* Rename command and status code
2017-05-11 10:34:16 -03:00
Jonathan Leibiusky @xetorthio
24f8c9fc62 Change import statements accordingly 2017-05-08 15:35:42 -03:00
Michael Irwin
e31dc8cfaa Replaced all uses of underscore in proxy URLs with dashes
Issue #128
2017-04-26 00:10:35 -04:00
Michael Irwin
38c97cf100 Added API endpoint to get available instance images 2017-04-11 16:57:29 -04:00
Marcos Lilljedahl
75f3c93612 Add TCP proxy for tcp over http connections 2017-03-30 16:49:03 -03:00
Marcos Lilljedahl
712f019ffb Resolve localhost 2017-03-15 18:16:36 -03:00
Jonathan Leibiusky @xetorthio
5f647d7fba Make PWD dns recursive 2017-02-24 11:52:42 -03:00
Jonathan Leibiusky @xetorthio
b6e44d93bc Also listen our dns server on tcp, so when we fail on udp and client retries on tcp, we also fail fast. 2017-02-24 10:54:15 -03:00
Jonathan Leibiusky @xetorthio
b44fb3d7bd Instead of returning a nice error, just close the connection as it seems
libnetwork doesn't handle RcodeServerFailure, and when receiving it it
won't try the next configured DNSs
2017-02-24 09:55:08 -03:00
Marcos Lilljedahl
d1772aebe9 Add cors only to routes that need it 2017-02-20 14:24:53 -03:00
Marcos Lilljedahl
0df09bebdb Allow to send subdomains but forward header as is to backends 2017-02-17 13:58:53 -03:00
Marcos Lilljedahl
9e57f3b61c Allow to override target host header using subdomains 2017-02-17 12:53:16 -03:00
Jonathan Leibiusky
f816be6f69 Add DNS support for PWD instances (#94)
* Add DNS support for PWD instances

* Store IP address of PWD in all session networks and restore it with the
same IP address

* Remove unnecesary print

* Change url format to pwd<ip>-port for better DNS filtering

* Make PWD listen on 80 and 443 for DNS resolve to work
2017-02-17 11:10:01 -03:00
Jonathan Leibiusky @xetorthio
9c4df837a8 Add support for websocket proxying 2017-02-14 15:41:03 -03:00
Marcos Nils
640d64c3aa Update proxy to handle port redirects (#92) 2017-02-12 02:25:25 +02:00
Marcos Lilljedahl
1d37f98efd Add content-type in CORS allowed headers for microsoft edge to work =S 2017-01-25 22:31:45 -03:00
Marcos Lilljedahl
f2fe0e3137 Configure CORS correctly 2017-01-13 20:40:14 -03:00
Marcos Lilljedahl
4616cb1f5d Add CORS handlers to support SDK 2017-01-13 19:29:39 -03:00
Marcos Lilljedahl
c1cfc7958a Revert "Add CORS to create session and make it return text plain session ID"
This reverts commit c81a712a28.
2017-01-13 19:27:07 -03:00
Marcos Lilljedahl
c81a712a28 Add CORS to create session and make it return text plain session ID 2017-01-13 19:23:41 -03:00
Marcos Nils
dea778440e Add TLS certificates for machine drivers (#73) 2016-12-27 18:53:50 +02:00
Jonathan Leibiusky
70eaf37d4b Add metrics (#70)
* Add prometheus support to count sessions, instances and clientes over
time

* Track counters on server reload

* Change to gauges
2016-12-15 17:12:17 -08:00
Alex Ellis
5eda323477 Enable use of override for session timeout in hours, fix captcha bypass bug. (#51)
* - Enable use of override for session timeout. This is more useful than having to hard-code and rebuild the code for the previous 4 hour limit. Just set environmental variable and start the app.
- Future work may involve breaking down into minutes, but this is a good minimum delivery to provide value to end-user/developer.

- Fixes bug in Captcha code by introducing new landing page. This is not a new go template, it's a separate HTML file because SRP - single reponsibility principle. Happy for this to be refacted after merging commit.

- Fix for including Docker 1.12 override has been removed for later PR.

* Merge

* Reinstate 'material' JS include'

* https for JS includes

* HTTPs for JS in bypass
2016-11-30 20:17:18 +02:00
Jonathan Leibiusky @xetorthio
6af6f42721 Make regex more restrictive to allow the proxy to be more deterministic.
Make it to not depend on a specific TLD.
2016-11-23 11:52:59 -03:00
Jonathan Leibiusky @xetorthio
b4ce06fa20 Reuse the same proxy handler 2016-11-23 11:52:59 -03:00
Jonathan Leibiusky @xetorthio
122118b9df Allow to specify port, and remove session id.
So now the way to address a node is in the form of:
`ip10_0_1_9-9200.play-with-docker.com`
2016-11-23 11:52:59 -03:00
Jonathan Leibiusky @xetorthio
ec9d34ffda Add reverse proxy endpoint.
It works by using the Host of the request. When it receives something in
the form of: `<node>.<session>.play-with-docker.com` it does a reverse
proxy http request to `node`, validating that the `node` actually belongs
to the `session`.
If the node has a prefix `ip` and continues with a valid IP address
where the dots where replaces by underscores (like `ip10_0_0_1`) then it
will remove the `ip` prefix and and replace the underscores by dots, and
assume it is an ip address.
2016-11-23 11:52:59 -03:00
Alex Ellis
11f2f48ebe Introduce flag for TCP port 2016-11-23 08:58:08 +00:00