212 Commits

Author SHA1 Message Date
Jonathan Leibiusky @xetorthio
e9911abf94 Storage has now it's own package.
Remove global `sessions` map and use configured storage.
Add a `types` package so both `pwd` and `storage` can access without
circular dependencies.
Now the session is prepared when requested and not on load.
2017-06-15 16:09:41 -03:00
Jonathan Leibiusky @xetorthio
2224e6e540 Add image_name parameter to SessionDeploy 2017-06-14 21:09:20 -03:00
Jonathan Leibiusky @xetorthio
8f247794bb Add PWD_HOST_FQDN env variable to instances. 2017-06-14 19:02:07 -03:00
Jonathan Leibiusky @xetorthio
33febafb43 Load sessions in parallel 2017-06-10 18:18:30 -03:00
Jonathan Leibiusky @xetorthio
6d992b5d02 Add session templates 2017-06-06 14:48:26 -03:00
Jonathan Leibiusky @xetorthio
c25b06936e Merge branch 'jonas_master' into refactor_test_1 2017-05-24 10:00:03 -03:00
Jonathan Leibiusky @xetorthio
3d96760a98 WIP 2017-05-23 19:29:36 -03:00
Marcos Nils
bccc87e0d9 Merge pull request #8 from xetorthio/stack_name
Allow to specify stack name as a parameter
2017-05-19 17:32:15 -03:00
Jonathan Leibiusky @xetorthio
55062234fd Allow to specify stack name as a parameter 2017-05-19 10:42:30 -03:00
Jonathan Leibiusky @xetorthio
a703f22997 Fixes #145 2017-05-19 10:16:00 -03:00
Jonathan Leibiusky @xetorthio
637b014931 Allow external stacks.
Also default to `stack.yml` if file was not specified.
2017-05-18 13:16:34 -03:00
Jonathan Leibiusky @xetorthio
1634200ef7 UI modifications for stack creation 2017-05-16 17:37:34 -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
5dd56a2886 Deploy stack automatically when supplied 2017-05-15 16:09:13 -03:00
Marcos Lilljedahl
a6c19e451f Remove duplicated regex and unused function 2017-05-15 14:30:42 -03:00
Jonathan Leibiusky @xetorthio
aa02432c56 Fix bugs introduced mainly to docker-machine driver when we added TLS proxy 2017-05-13 11:12:37 -03:00
Marcos Lilljedahl
46bbd3b074 Fix missing spots due to host url change 2017-05-12 17:25:45 -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 Nils
c511737136 Allow to specify image new when creating instances (#84) 2017-04-11 14:01:15 -03:00
Marcos Lilljedahl
c4be25076d Remove unnecesary proxy 2017-03-30 18:50:10 -03:00
Marcos Lilljedahl
75f3c93612 Add TCP proxy for tcp over http connections 2017-03-30 16:49:03 -03:00
Marcos Lilljedahl
2c7af720c0 Increase cookie time 2017-03-14 14:59:06 -03:00
Marcos Lilljedahl
a875bbe23e Add cookie to prevent captcha constantly 2017-03-14 14:08:46 -03:00
Jonathan Leibiusky @xetorthio
0770eb689b Add some logging to the proxy 2017-03-13 18:23:36 -03:00
Marcos Nils
a4b0a98df3 Scaling (#109)
Make PWD scalable
2017-03-13 18:07:20 -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
c0bafc5f3b Allow to access insecure https exposed services through proxy 2017-02-01 16:40:45 -03:00
Marcos Nils
a5d1e5c207 Allow to override session timeout. (#86)
* Allow to override session timeout.

This comes useful as it can be overriden from the SDK now

* Fix comments
2017-01-31 13:51:57 +02:00
Marcos Lilljedahl
51d19839bf Add transport to avoid connection re-use 2017-01-19 13:20:10 -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 @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
Jonathan Leibiusky @xetorthio
af9986c0f8 Validates that user is a human.
Add google recaptcha as an initial page before creating any session.
To configure recaptcha there are 2 environment variables that are needed
`GOOGLE_RECAPTCHA_SITE_KEY` and `GOOGLE_RECAPTCHA_SITE_SECRET`.
The code contains development defaults that should be set in production
to real values.
**NOTICE: Development defaults assume that the domain is `localhost`**
2016-11-15 16:53:44 -03:00
Marcos Lilljedahl
e8d69d6a21 Fix session config for docker image 2016-11-14 22:08:53 -03:00
Marcos Lilljedahl
2450d53eeb Avoid app crash if WS handler panics 2016-11-13 21:56:19 -03:00
Jonathan Leibiusky (@xetorthio)
d05fe56fea Better session lock management 2016-11-11 20:10:19 -03:00