A tool to deploy a static site to a fully protected GAE instance
Have a static site or just an HTML page you wanna show a client? You can easily push content to a remote, secure and whitelisted site.
Now manages all projects under a single GAE App ID. Each project is considered a project version, which gets around the 10 project limit Google imposes.
- Defaults to protected, including asset files (css, img and js)
- Allows management of authorized users @ /admin
- Allows wild card domains, like
leftfieldlabs.com
, to allow whole groups
- Tests
- Cleaner admin
Apps are deployed to subdomain of unified systemDelete/update users
- Python 2.7
- GoogleAppEngineLauncher >= 1.9.23 (installed and running)
- Clone repo
- Navigate to your newly cloned folder and run
sudo ./scripts/install
or
- Via curl with
curl -s https://raw.githubusercontent.com/leftfieldlabs/drawbridge/master/scripts/install | sh
- Create a Google Cloud Platform (GCP) project, but don't create an AppEngine instance. Must be project owner to deploy.
- From inside the directory with all your site assets, run
drawbridge deploy [app-id] [release]
- Visit
[release]-dot-[app-id].appspot.com
to see your site
- Head to
[release]-dot-[app-id].appspot.com/admin
with your GCP email. - Add users or organizations.
Run drawbridge update
from anywhere to get latest vault code
Run drawbridge local
from directory with content to test locally. Keep in mind this does not currently refresh code changes. You'll need to re-run the command to get latest changes from your code.
If you are using Drawbridge, this is a tool to help you store data persistently in a rush. Think of Parse or Firebase, but exclusively for Drawbridge.
Simply add <script src="/__tools__/drawbridge.js"></script>
to the <head />
of your index.html and you're set.
Just like Drawbridge, this is not intended to be high performing. Nor can you store tons of data. When you save, the data object is serialized and stored in a GAE Datastore instance. There is currently a 1MB max size.
var dr = new Drawbridge.Record("some-drawbridge-project-name");
dr.set('someKey', 2); // Not yet saved
dr.set('someOtherKey', ["example", 2, "something"]); // Not yet saved
dr.save(function(data) {
// on success, do something
});
console.log(dr.get('someKey'));
- If a URI goes to a directory, like
http://someapp-dot-something.appspot.com/something/
, it will attempt to load an index.html. It will not work with anything else
If you need a new feature, please create an issue or (better yet) submit a pull request.