1
0
mirror of https://github.com/bingohuang/docker-labs.git synced 2025-07-14 10:17:26 +08:00

81 Commits

Author SHA1 Message Date
Marcos Lilljedahl
453b39d75f Fix variable definition 2017-04-11 20:22:57 -03:00
Marcos Lilljedahl
5b48de2164 Fix imageName argument
- Use defaultDindImageName variable in list
2017-04-11 20:00:52 -03:00
Michael Irwin
38c97cf100
Added API endpoint to get available instance images 2017-04-11 16:57:29 -04:00
Marcos Lilljedahl
8b00e7d132 Add new parameter due to API change 2017-04-11 14:53:33 -03:00
Marcos Nils
c511737136 Allow to specify image new when creating instances (#84) 2017-04-11 14:01:15 -03:00
Marcos Lilljedahl
d497c5f05b Autoremove container upon exit 2017-03-17 12:56:35 -03:00
Marcos Lilljedahl
6fba4f3b3a Add session to list in the end 2017-03-15 17:41:53 -03:00
Marcos Lilljedahl
ec03c5ed69 Add MaxAge to securecookie 2017-03-14 17:08:02 -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
Marcos Nils
a4b0a98df3 Scaling (#109)
Make PWD scalable
2017-03-13 18:07:20 -03:00
Marcos Nils
b999083ec7 Return ordered ports to the interface (#101)
Fixes #100
2017-03-07 11:04:16 -03:00
Jonathan Leibiusky @xetorthio
d71799954f Code update because of dependecy changes 2017-02-24 10:01:06 -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
Marcos Nils
640d64c3aa Update proxy to handle port redirects (#92) 2017-02-12 02:25:25 +02:00
Marcos Lilljedahl
4374b5b9c8 Fix condition 2017-02-01 18:25:28 -03:00
Marcos Lilljedahl
434256f9cc Increase pidslimit to 1000 and allow to override via env var 2017-02-01 17:29:14 -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
bfbe3abed5 Check that instance is present when setting ports 2016-12-29 14:10:21 -03:00
Marcos Lilljedahl
b48812b085 Apply apparmor profile if env variable is present 2016-12-28 14:40:19 -03:00
Marcos Nils
dea778440e Add TLS certificates for machine drivers (#73) 2016-12-27 18:53:50 +02:00
Marcos Lilljedahl
440ba09061 Change detach keys so other programs like nano work
Fixes #52
2016-12-21 19:09:22 -03:00
Jonathan Leibiusky (@xetorthio)
6c651abfae Was not handling nil here 2016-12-18 09:05:16 -08:00
Jonathan Leibiusky
54045d02f6 Delete zombie sessions and instances (#71) 2016-12-17 12:48:15 -08:00
Jonathan Leibiusky (@xetorthio)
93226e30ff Fixes prometheus gauges
Fix session close. Now PWD gets disconnected from network before
deleting it.
2016-12-17 11:41:24 -08: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
Jonathan Leibiusky (@xetorthio)
69050373d7 Show docker swarm used ports 2016-12-13 08:02:48 -06:00
Marcos Lilljedahl
a7811b4e33 Omit race conditions and update swarm info events 2016-12-02 10:29:41 -03:00
Marcos Nils
84da622775 Remove pointer in struct method to avoid concurrent modifications to the (#64) 2016-12-02 02:19:49 +02:00
Jonathan Leibiusky @xetorthio
77905f3fd8 Query DinD instances for running containers and list the published ports
so the user can reverse proxy to the instance/port easily.
2016-12-01 17:28:55 -03:00
Jonathan Leibiusky
afa47c0bfc Periodic tasks refactor (#62)
* Once every second the session run a list of periodic tasks on every
instance concurrently. We use these tasks to do things like:
- Collect mem and cpu stats
- Check if instance is part of a swarm cluster
- Broadcast information to connected clients
2016-12-01 15:57:30 -03: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
Marcos Lilljedahl
cbdc22d8a0 Remove unnecessary log line and change default dind image 2016-11-29 11:06:43 -03:00
Marcos Lilljedahl
10bdf3d5f2 Return swarm info to be displayed in the FE
This requires that PWD is working as a container in the same
network as all dinds

Add icons to swarmInfo
2016-11-29 10:52:55 -03: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
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
Antonis Kalipetis
dd8f63363e
Fix issue where instance name rotation was faulty
Previously, if node2 was deleted in a node1, node2, node3 set, the next node creation would fail since it would always try to assign node3 as a name.
Now, the first available name is always assigned.

Signed-off-by: Antonis Kalipetis <akalipetis@gmail.com>
2016-11-22 10:42:19 +02:00
Marcos Lilljedahl
861355d4e3 Fix undetected bugs in instance renaming 2016-11-22 00:07:41 -03:00
Marcos Lilljedahl
8f5f9f2c90 Add container names to make attachable names work 2016-11-21 22:01:00 -03:00
Marcos Lilljedahl
a7d76f2720 Enumerate nodes to improve cluster configuration 2016-11-21 21:49:23 -03:00
Jonathan Leibiusky @xetorthio
8b0749a9ba Show cpu and memory stats of every node 2016-11-18 13:52:47 -03:00
Marcos Lilljedahl
a10f247812 Allow to disable recaptcha explicitly by env variable
The reason for this is because sometimes in dev enviroments recaptcha
will might return a wrong answer, so it's nice to have a way to
explicitly disable it
2016-11-16 01:23:50 -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
Jonathan Leibiusky @xetorthio
802375bbf7 After loading saved sessions schedule them to expire 2016-11-15 14:49:50 -03:00
Jonathan Leibiusky @xetorthio
db074a5804 Add expiration clock to sessions 2016-11-15 13:20:59 -03:00
Marcos Lilljedahl
939c045198 Change default dind image and prevent session panic 2016-11-15 01:46:29 -03:00
Marcos Lilljedahl
e8d69d6a21 Fix session config for docker image 2016-11-14 22:08:53 -03:00
Marcos Lilljedahl
23bb4eaf69 Add session persistence and use attach instead of exec 2016-11-14 21:29:32 -03:00
Marcos Lilljedahl
6148dd8d86 Ctrl-m is enter :S 2016-11-14 18:23:24 -03:00
Marcos Lilljedahl
227af2338d Change default dind detach keys to standard PQ can be used in PWD 2016-11-14 17:49:34 -03:00