mirror of https://gitee.com/bigwinds/arangodb
Removed old Foxx Manager Documentation. Will be displayed elsewhere
This commit is contained in:
parent
2488e11c84
commit
9e3d29e722
|
@ -1,208 +0,0 @@
|
|||
!CHAPTER Behind the Foxx Manager scenes
|
||||
|
||||
In the previous chapter we have seen how to install and uninstall applications.
|
||||
We now go into more details.
|
||||
|
||||
There are five steps when installing or uninstalling applications.
|
||||
|
||||
* *fetch* the application from a source
|
||||
* *mount* the application at a mount path
|
||||
* *setup* the application, creating the necessary collections
|
||||
* *teardown* the application, removing the application-specific collections
|
||||
* *unmount* the application
|
||||
|
||||
When installing an application, the steps "fetch", "mount", and "setup" are
|
||||
executed automatically. When uninstalling an application, the steps "teardown"
|
||||
and "unmount" are executed automatically.
|
||||
|
||||
!SECTION Installing an application manually
|
||||
|
||||
We are now going to install the hello world application manually. You can use *search*
|
||||
to find application in your local copy of the central repository.
|
||||
|
||||
So, first we update our local copy to get the newest versions from the central repository.
|
||||
|
||||
unix> foxx-manager update
|
||||
Updated local repository information with 4 application(s)
|
||||
|
||||
You can now search for words with the description of an application.
|
||||
|
||||
unix> foxx-manager search hello
|
||||
Name Author Description
|
||||
----------- ------------- -----------------------------------------
|
||||
hello-foxx Frank Celler This is 'Hello World' for ArangoDB Foxx.
|
||||
----------- ------------- -----------------------------------------
|
||||
1 application(s) found
|
||||
|
||||
As soon as you know the name of the application, you can check its details.
|
||||
|
||||
unix> foxx-manager info hello-foxx
|
||||
Name: hello-foxx
|
||||
Author: Frank Celler
|
||||
System: false
|
||||
Description: This is 'Hello World' for ArangoDB Foxx.
|
||||
|
||||
Versions:
|
||||
1.1.0: fetch github "fceller/hello-foxx" "v1.1.0"
|
||||
1.1.1: fetch github "fceller/hello-foxx" "v1.1.1"
|
||||
1.2.0: fetch github "fceller/hello-foxx" "v1.2.0"
|
||||
1.2.1: fetch github "fceller/hello-foxx" "v1.2.1"
|
||||
1.2.2: fetch github "fceller/hello-foxx" "v1.2.2"
|
||||
|
||||
If you execute
|
||||
|
||||
unix> foxx-manager fetch github "fceller/hello-foxx" "v1.2.1"
|
||||
|
||||
the git tag *1.2.1* of the referenced repo will be downloaded and the contents of its *manifest.json* is used to determine the apps' properties.
|
||||
|
||||
The command *fetched* lists all fetched applications.
|
||||
|
||||
unix> foxx-manager fetched
|
||||
Name Author Description AppID Version Path
|
||||
----------- ------------- ------------------------------ --------------------- -------- -----------------
|
||||
hello-foxx A simple example application. app:hello-foxx:1.2.1 1.2.1 hello-foxx-1.2.1
|
||||
hello-foxx Frank Celler A simple example application. app:hello-foxx:1.2.2 1.2.2 hello-foxx-1.2.2
|
||||
----------- ------------- ------------------------------ --------------------- -------- -----------------
|
||||
2 application(s) found
|
||||
|
||||
We have now two versions of the hello world application. The current version fetched when installing the application using *install* and the one fetched now.
|
||||
|
||||
Let's now mount the application in version 1.2.1 under */hello*.
|
||||
|
||||
unix> foxx-manager mount app:hello-foxx:1.2.1 /hello
|
||||
unix> foxx-manager installed
|
||||
Name Author Description AppID Version Mount Active System
|
||||
----------- ------------------ -------------------------------------------------------- --------------------- -------- ----------------- ------- -------
|
||||
hello-foxx Frank Celler A simple example application. app:hello-foxx:1.2.1 1.2.1 /hello yes no
|
||||
hello-foxx Frank Celler A simple example application. app:hello-foxx:1.2.2 1.2.2 /example yes no
|
||||
aardvark Michael Hackstein Foxx application manager for the ArangoDB web interface app:aardvark:1.0 1.0 /_admin/aardvark yes yes
|
||||
----------- ------------------ -------------------------------------------------------- --------------------- -------- ----------------- ------- -------
|
||||
3 application(s) found
|
||||
|
||||
The application is mounted but not yet initialized. If you check the
|
||||
available collections, you will see that there is no collection
|
||||
called *hello_texts*.
|
||||
|
||||
arangosh> db._collections()
|
||||
[
|
||||
[ArangoCollection 2965927, "_routing" (type document, status loaded)],
|
||||
[ArangoCollection 96682407, "example_texts" (type document, status loaded)],
|
||||
...
|
||||
]
|
||||
|
||||
A collection *example_texts* exists. This belongs to the mounted application
|
||||
at */example*. If we set-up the application, then the setup script will
|
||||
create the missing collection.
|
||||
|
||||
unix> foxx-manager setup /hello
|
||||
|
||||
Now check the list of collections again.
|
||||
|
||||
arangosh> db._collections()
|
||||
[
|
||||
[ArangoCollection 2965927, "_routing" (type document, status loaded)],
|
||||
[ArangoCollection 96682407, "example_texts" (type document, status unloaded)],
|
||||
[ArangoCollection 172900775, "hello_texts" (type document, status loaded)],
|
||||
...
|
||||
]
|
||||
|
||||
You can now use the mounted and initialized application.
|
||||
|
||||
unix> foxx-manager installed
|
||||
Name Author Description AppID Version Mount Active System
|
||||
----------- ------------------ -------------------------------------------------------- --------------------- -------- ----------------- ------- -------
|
||||
hello-foxx Frank Celler A simple example application. app:hello-foxx:1.2.2 1.2.2 /example yes no
|
||||
hello-foxx Frank Celler A simple example application. app:hello-foxx:1.2.1 1.2.1 /hello yes no
|
||||
aardvark Michael Hackstein Foxx application manager for the ArangoDB web interface app:aardvark:1.0 1.0 /_admin/aardvark yes yes
|
||||
----------- ------------------ -------------------------------------------------------- --------------------- -------- ----------------- ------- -------
|
||||
3 application(s) found
|
||||
|
||||
As you can see, there are two instances of the application under two mount
|
||||
paths in two different versions. As the collections are not shared between
|
||||
applications, they are completely independent from each other.
|
||||
|
||||
!SECTION Uninstalling an application manually
|
||||
|
||||
Now let us uninstall the application again. First we have to call the
|
||||
teardown script, which will remove the collection *hello_texts*.
|
||||
|
||||
unix> foxx-manager teardown /hello
|
||||
|
||||
This will drop the collection *hello_exists*. The application is,
|
||||
however, still reachable. We still need to unmount it.
|
||||
|
||||
unix> foxx-manager unmount /hello
|
||||
|
||||
!SUBSECTION Removing all mounts of an application
|
||||
|
||||
The same application might be mounted multiple times under different mount
|
||||
paths. To get rid of all mounted instances of an application, there is the
|
||||
"purge" command. "purge" will unmount and tear down all mounted instances
|
||||
of the application, and finally will remove the application directory, too.
|
||||
|
||||
This will remove all data of all instances of the application and also the
|
||||
application directory, code and configured. Use with care!
|
||||
|
||||
!SECTION Making changes to an existing application
|
||||
|
||||
There are two options for deploying local changes to an existing application:
|
||||
|
||||
- the easiest way is to start the server in development mode. This will make
|
||||
all available foxx applications be available in under the */dev/* URL prefix.
|
||||
All changes to the application code will become live instantly because all
|
||||
applications are reloaded on each request to a URL starting with */dev/*.
|
||||
**Note**: that the constant reloading in the development mode has a performance
|
||||
impact so it shouldn't be used in product.
|
||||
|
||||
- if the development mode is not an option, you can use the *replace* command
|
||||
from foxx-manager. It provides an easy mechanism to re-deploy the code for
|
||||
an already installed application. It can be used as follows:
|
||||
|
||||
unix> foxx-manager replace hello-foxx /hello
|
||||
|
||||
The above will re-deploy the code for the application *hello-foxx* which has
|
||||
to be already installed under the */hello* mount point. The application's
|
||||
setup function will be called when invoking *replace* but not *teardown*.
|
||||
|
||||
!SECTION Installing an application from your own Github repository
|
||||
|
||||
So far we have installed Foxx applications from the central Github repository
|
||||
"arangodb/foxx-apps". It is also possible to install an application from another
|
||||
repository. This can achieved by using the *fetch* and *mount* commands as
|
||||
follows:
|
||||
|
||||
unix> foxx-manager fetch github <username>/<repository>
|
||||
unix> foxx-manager mount <app-id> <mount>
|
||||
|
||||
*Examples*
|
||||
|
||||
unix> foxx-manager fetch github arangodb/fugu
|
||||
unix> foxx-manager mount fugu /fugu
|
||||
|
||||
!SECTION Installing an application from a local directory
|
||||
|
||||
You may also install Foxx applications which are already located in the
|
||||
filesystem. Again, you can use the *fetch* command, but with the *directory*
|
||||
type. Note that the directory location must be a directory accessible by
|
||||
the foxx-manager.
|
||||
|
||||
*Examples*
|
||||
|
||||
unix> foxx-manager fetch directory /home/developer/apps/myapp
|
||||
unix> foxx-manager mount myapp /myapp
|
||||
|
||||
!SUBSECTION Installing an application from a zip file
|
||||
|
||||
It is also possible to install an application contained in a zip file.
|
||||
You can use the *fetch* command again, with the *zip* type. Note that
|
||||
the zip file must be accessible by the foxx-manager.
|
||||
|
||||
Let's first fetch a zip file. We'll be downloading the fugu application
|
||||
from Github and store it in file *fugu.zip* locally:
|
||||
|
||||
unix> wget -O fugu.zip "https://github.com/arangodb/fugu/archive/master.zip"
|
||||
|
||||
Now we can install the application from the zip file:
|
||||
|
||||
unix> foxx-manager fetch zip ./fugu.zip
|
||||
unix> foxx-manager mount fugu /fugu
|
|
@ -1,120 +0,0 @@
|
|||
!CHAPTER First Steps with the Foxx Manager
|
||||
|
||||
The Foxx manager is a shell program. It should have been installed under */usr/bin* or */usr/local/bin*
|
||||
when installing the ArangoDB package. An instance of the ArangoDB server must be
|
||||
up and running.
|
||||
|
||||
unix> foxx-manager
|
||||
Expecting a command, please try:
|
||||
|
||||
Example usage:
|
||||
foxx-manager install <app-info> <mount-point> option1=value1
|
||||
foxx-manager uninstall <mount-point>
|
||||
|
||||
Further help:
|
||||
foxx-manager help for the list of foxx-manager commands
|
||||
foxx-manager --help for the list of options
|
||||
|
||||
The most important commands are
|
||||
|
||||
* *install*: Installs a Foxx application to a local URL and calls its setup method
|
||||
* *uninstall*: Deletes a Foxx application and calls its teardown method
|
||||
* *list*: Lists all installed Foxx applications (alias: *installed*)
|
||||
|
||||
When dealing with a fresh install of ArangoDB, there should be no installed
|
||||
applications besides the system applications that are shipped with ArangoDB.
|
||||
|
||||
unix> foxx-manager list
|
||||
Mount Name Author Description Version Development
|
||||
--------------------- ------------ ------------------ ----------------------------------------------- -------- ------------
|
||||
/_admin/aardvark aardvark ArangoDB GmbH ArangoDB Admin Web Interface 1.0 no
|
||||
/_api/gharial gharial ArangoDB GmbH ArangoDB Graph Module 0.1 no
|
||||
/_system/cerberus cerberus ArangoDB GmbH Password Manager 0.0.1 no
|
||||
/_system/sessions sessions ArangoDB GmbH Session storage for Foxx. 0.1 no
|
||||
/_system/simple-auth simple-auth ArangoDB GmbH Simple password-based authentication for Foxx. 0.1 no
|
||||
--------------------- ------------ ------------------ ----------------------------------------------- -------- ------------
|
||||
5 application(s) found
|
||||
|
||||
There are currently several applications installed, all of them are system applications.
|
||||
You can safely ignore system applications.
|
||||
|
||||
We are now going to install the _hello world_ application. It is called
|
||||
"hello-foxx" - no suprise there.
|
||||
|
||||
unix> foxx-manager install hello-foxx /example
|
||||
Application hello-foxx version 1.5.0 installed successfully at mount point /example
|
||||
|
||||
The second parameter */example* is the mount path of the application. You
|
||||
should now be able to access the example application under
|
||||
|
||||
http://localhost:8529/example
|
||||
|
||||
using your favorite browser. It will now also be visible when using the *list* command.
|
||||
|
||||
unix> foxx-manager list
|
||||
Mount Name Author Description Version Development
|
||||
--------------------- ------------ ------------------ ----------------------------------------------- -------- ------------
|
||||
/_admin/aardvark aardvark ArangoDB GmbH ArangoDB Admin Web Interface 1.0 no
|
||||
/_api/gharial gharial ArangoDB GmbH ArangoDB Graph Module 0.1 no
|
||||
/_system/cerberus cerberus ArangoDB GmbH Password Manager 0.0.1 no
|
||||
/_system/sessions sessions ArangoDB GmbH Session storage for Foxx. 0.1 no
|
||||
/_system/simple-auth simple-auth ArangoDB GmbH Simple password-based authentication for Foxx. 0.1 no
|
||||
/example hello-foxx Frank Celler This is 'Hello World' for ArangoDB Foxx. 1.5.0 no
|
||||
--------------------- ------------ ------------------ ----------------------------------------------- -------- ------------
|
||||
6 application(s) found
|
||||
|
||||
You can install the application again under different mount path.
|
||||
|
||||
unix> foxx-manager install hello-foxx /hello
|
||||
Application hello-foxx version 1.5.0 installed successfully at mount point /hello
|
||||
|
||||
You now have two separate instances of the same application. They are
|
||||
completely independent of each other.
|
||||
|
||||
unix> foxx-manager list
|
||||
Mount Name Author Description Version Development
|
||||
--------------------- ------------ ------------------ ----------------------------------------------- -------- ------------
|
||||
/_admin/aardvark aardvark ArangoDB GmbH ArangoDB Admin Web Interface 1.0 no
|
||||
/_api/gharial gharial ArangoDB GmbH ArangoDB Graph Module 0.1 no
|
||||
/_system/cerberus cerberus ArangoDB GmbH Password Manager 0.0.1 no
|
||||
/_system/sessions sessions ArangoDB GmbH Session storage for Foxx. 0.1 no
|
||||
/_system/simple-auth simple-auth ArangoDB GmbH Simple password-based authentication for Foxx. 0.1 no
|
||||
/example hello-foxx Frank Celler This is 'Hello World' for ArangoDB Foxx. 1.5.0 no
|
||||
/hello hello-foxx Frank Celler This is 'Hello World' for ArangoDB Foxx. 1.5.0 no
|
||||
--------------------- ------------ ------------------ ----------------------------------------------- -------- ------------
|
||||
7 application(s) found
|
||||
|
||||
The current version of the application is *1.5.0* (check the output of *list*).
|
||||
It is even possible to mount a different version of an application.
|
||||
|
||||
Now let's remove the instance mounted under */hello*.
|
||||
|
||||
unix> foxx-manager uninstall /hello
|
||||
Application hello-foxx version 1.5.0 uninstalled successfully from mount point /hello
|
||||
|
||||
Note that "uninstall" will trigger the *teardown* script, which allows the
|
||||
application to clean up its own data.
|
||||
Afterwards the application will be deleted from disk.
|
||||
|
||||
We can also replace a running application by any other application:
|
||||
|
||||
unix> foxx-manager replace itzpapalotl:0.9.0 /example
|
||||
Application itzpapalotl version 0.9.0 installed successfully at mount point /example
|
||||
|
||||
This is a shortcut for an *uninstall* then *install* procedure and includes invocation of *teardown* and *setup* scripts of the respective applications.
|
||||
If no application is installed at the mount point this shortcut will fail, use *install* instead.
|
||||
Note here we have specified a specific version of the application: *0.9.0*.
|
||||
|
||||
Finally you can upgrade a running application to a newer version:
|
||||
|
||||
unix> foxx-manager update itzpapalotl:1.0.0 /example
|
||||
Application itzpapalotl version 1.0.0 installed successfully at mount point /example
|
||||
|
||||
This will do *uninstall* and *install* of the application but will **not** execute *setup* or *teardown* scripts, but will run the *upgrade* script instead.
|
||||
|
||||
|
||||
!SECTION Application identifier
|
||||
|
||||
For all functions that install an application the first argument is an Application identifier.
|
||||
In the examples above we have used the Arango Store and downloaded applications that have been published there.
|
||||
But in most cases you will install you own application that is probably not published there.
|
|
@ -1,20 +0,0 @@
|
|||
!CHAPTER Frequently Used Options
|
||||
|
||||
Internally, *foxx-manager* is a wrapper around *arangosh*. That means you can
|
||||
use the options of *arangosh*. To retrieve a list of the options for *arangosh*, try
|
||||
```
|
||||
unix> foxx-manager --help
|
||||
```
|
||||
|
||||
To most relevant *arangosh* options to pass to the *foxx-manager* will be:
|
||||
|
||||
```
|
||||
--server.database <string> database name to use when connecting
|
||||
--server.disable-authentication <bool> disable the password prompt and authentication when connecting to the server
|
||||
--server.endpoint <string> endpoint to connect to, use 'none' to start without a server
|
||||
--server.password <string> password to use when connecting
|
||||
--server.username <string> username to use when connecting
|
||||
```
|
||||
|
||||
These options allow you to use the foxx-manager with a different database or with another
|
||||
than the default user.
|
|
@ -1,40 +0,0 @@
|
|||
!CHAPTER Install Applications from github
|
||||
|
||||
In this chapter we will make use of the foxx manager as described [before](FirstSteps.md).
|
||||
This time we want to install an app out of our version control hosted on [github.com](https://www.github.com).
|
||||
|
||||
In order to install an application we need three informations:
|
||||
|
||||
* *Repository*: The name of the repository.
|
||||
* *Username*: The username of the user owning the repository.
|
||||
* *Version*: (optional) branch or tag available on the repository.
|
||||
|
||||
As an example, we would like to install [www.github.com/arangodb/hello-foxx](https://www.github.com/arangodb/hello-foxx).
|
||||
The *username* is *arangodb*, the *repository* is *hello-foxx*.
|
||||
If we do not define a *version* it will automatically install the master branch.
|
||||
|
||||
unix> foxx-manager install git:arangodb/hello-foxx /example
|
||||
Application hello-foxx version 1.5.0 installed successfully at mount point /example
|
||||
|
||||
The hello-foxx app has defined a tag for version 1.4.4 that is named "v1.4.4".
|
||||
We can simply append this tag in the install command:
|
||||
|
||||
unix> foxx-manager install git:arangodb/hello-foxx:v1.4.4 /legacy
|
||||
Application hello-foxx version 1.4.4 installed successfully at mount point /legacy
|
||||
|
||||
This reference for github repositories can be used in all functions of the foxx-manager that allow to install foxx applications:
|
||||
|
||||
*install*
|
||||
|
||||
unix> foxx-manager install git:arangodb/hello-foxx:v1.4.4 /legacy
|
||||
Application hello-foxx version 1.4.4 installed successfully at mount point /legacy
|
||||
|
||||
*replace*
|
||||
|
||||
unix> foxx-manager replace git:arangodb/hello-foxx:v1.4.4 /legacy
|
||||
Application hello-foxx version 1.4.4 installed successfully at mount point /legacy
|
||||
|
||||
*upgrade*
|
||||
|
||||
unix> foxx-manager upgrade git:arangodb/hello-foxx:v1.5.0 /legacy
|
||||
Application hello-foxx version 1.5.0 installed successfully at mount point /legacy
|
|
@ -1,86 +0,0 @@
|
|||
!CHAPTER Install Applications from local file system
|
||||
|
||||
In this chapter we will make use of the foxx manager as described [before](FirstSteps.md).
|
||||
This time we want to install an app that is located on our local file system.
|
||||
At this point we have to mention that it if you connect to a remote ArangoDB with
|
||||
|
||||
unix> foxx-manager --server.endpoint tcp://example.com:8529
|
||||
|
||||
the file has to be available on your local machine, not on the remote server.
|
||||
The only thing you need is the path to your application either relative or absolute.
|
||||
You can install a foxx application right from a directory:
|
||||
|
||||
unix> ls /Users/arangodb/hello-foxx
|
||||
README.md app.js assets files kaffee.coffee lib
|
||||
manifest.json models scripts thumbnail.png
|
||||
unix> foxx-manager install /Users/arangodb/hello-foxx /example
|
||||
Application hello-foxx version 1.5.0 installed successfully at mount point /example
|
||||
|
||||
Or you can pack the application into a zip archive.
|
||||
And then install using this archive.
|
||||
|
||||
|
||||
unix> unzip -l ../hello-foxx.zip
|
||||
Archive: hello-foxx.zip
|
||||
0836dc2e81be8264e480a7695b46c1abe7ef153d
|
||||
Length Date Time Name
|
||||
-------- ---- ---- ----
|
||||
0 09-10-14 15:35 hello-foxx/
|
||||
1256 09-10-14 15:35 hello-foxx/README.md
|
||||
11200 09-10-14 15:35 hello-foxx/app.js
|
||||
0 09-10-14 15:35 hello-foxx/assets/
|
||||
0 09-10-14 15:35 hello-foxx/assets/css/
|
||||
82 09-10-14 15:35 hello-foxx/assets/css/base.css
|
||||
86 09-10-14 15:35 hello-foxx/assets/css/custom.css
|
||||
0 09-10-14 15:35 hello-foxx/assets/vendor/
|
||||
0 09-10-14 15:35 hello-foxx/assets/vendor/bootstrap/
|
||||
0 09-10-14 15:35 hello-foxx/assets/vendor/bootstrap/css/
|
||||
22111 09-10-14 15:35 hello-foxx/assets/vendor/bootstrap/css/bootstrap-responsive.css
|
||||
16849 09-10-14 15:35 hello-foxx/assets/vendor/bootstrap/css/bootstrap-responsive.min.css
|
||||
127247 09-10-14 15:35 hello-foxx/assets/vendor/bootstrap/css/bootstrap.css
|
||||
105939 09-10-14 15:35 hello-foxx/assets/vendor/bootstrap/css/bootstrap.min.css
|
||||
0 09-10-14 15:35 hello-foxx/assets/vendor/bootstrap/img/
|
||||
8777 09-10-14 15:35 hello-foxx/assets/vendor/bootstrap/img/glyphicons-halflings-white.png
|
||||
12799 09-10-14 15:35 hello-foxx/assets/vendor/bootstrap/img/glyphicons-halflings.png
|
||||
0 09-10-14 15:35 hello-foxx/assets/vendor/jquery/
|
||||
268380 09-10-14 15:35 hello-foxx/assets/vendor/jquery/jquery.js
|
||||
0 09-10-14 15:35 hello-foxx/assets/vendor/sh/
|
||||
1981 09-10-14 15:35 hello-foxx/assets/vendor/sh/highlighter.css
|
||||
5563 09-10-14 15:35 hello-foxx/assets/vendor/sh/sh_javascript.js
|
||||
5305 09-10-14 15:35 hello-foxx/assets/vendor/sh/sh_main.min.js
|
||||
0 09-10-14 15:35 hello-foxx/files/
|
||||
3266 09-10-14 15:35 hello-foxx/files/index.html
|
||||
398 09-10-14 15:35 hello-foxx/files/static.html
|
||||
361 09-10-14 15:35 hello-foxx/kaffee.coffee
|
||||
0 09-10-14 15:35 hello-foxx/lib/
|
||||
108 09-10-14 15:35 hello-foxx/lib/a.js
|
||||
43 09-10-14 15:35 hello-foxx/lib/c.js
|
||||
1129 09-10-14 15:35 hello-foxx/manifest.json
|
||||
0 09-10-14 15:35 hello-foxx/models/
|
||||
330 09-10-14 15:35 hello-foxx/models/tiger.js
|
||||
0 09-10-14 15:35 hello-foxx/scripts/
|
||||
2065 09-10-14 15:35 hello-foxx/scripts/setup.js
|
||||
1798 09-10-14 15:35 hello-foxx/scripts/teardown.js
|
||||
17727 09-10-14 15:35 hello-foxx/thumbnail.png
|
||||
-------- -------
|
||||
614800 37 files
|
||||
|
||||
unix> foxx-manager install ../hello-foxx.zip /example
|
||||
Application hello-foxx version 1.5.0 installed successfully at mount point /example
|
||||
|
||||
You can use paths to directories in all functions of the foxx-manager that allow to install foxx applications:
|
||||
|
||||
*install*
|
||||
|
||||
unix> foxx-manager install /Users/arangodb/hello-foxx /example
|
||||
Application hello-foxx version 1.5.0 installed successfully at mount point /example
|
||||
|
||||
*replace*
|
||||
|
||||
unix> foxx-manager replace /Users/arangodb/hello-foxx /example
|
||||
Application hello-foxx version 1.5.0 installed successfully at mount point /example
|
||||
|
||||
*upgrade*
|
||||
|
||||
unix> foxx-manager upgrade /Users/arangodb/hello-foxx /example
|
||||
Application hello-foxx version 1.5.0 installed successfully at mount point /example
|
|
@ -1,85 +0,0 @@
|
|||
!CHAPTER Install Applications from remote host
|
||||
|
||||
In this chapter we will make use of the foxx manager as described [before](FirstSteps.md).
|
||||
This time we want to install an app hosted on a server.
|
||||
Currently the foxx-manager supports downloads of applications via http and https protocols.
|
||||
|
||||
!SECTION Remote file format
|
||||
The file on the remote server has to be a valid foxx application packed in a zip archive.
|
||||
The zip archive has to contain a top-level directory which is containing the sources of the foxx application.
|
||||
Especially the file *manifest.json* has to be directly contained in this top-level directory.
|
||||
On a unix system you can verify that your zip archive has the correct format if the content looks like this:
|
||||
|
||||
unix> unzip -l hello-foxx.zip
|
||||
Archive: hello-foxx.zip
|
||||
0836dc2e81be8264e480a7695b46c1abe7ef153d
|
||||
Length Date Time Name
|
||||
-------- ---- ---- ----
|
||||
0 09-10-14 15:35 hello-foxx/
|
||||
1256 09-10-14 15:35 hello-foxx/README.md
|
||||
11200 09-10-14 15:35 hello-foxx/app.js
|
||||
0 09-10-14 15:35 hello-foxx/assets/
|
||||
0 09-10-14 15:35 hello-foxx/assets/css/
|
||||
82 09-10-14 15:35 hello-foxx/assets/css/base.css
|
||||
86 09-10-14 15:35 hello-foxx/assets/css/custom.css
|
||||
0 09-10-14 15:35 hello-foxx/assets/vendor/
|
||||
0 09-10-14 15:35 hello-foxx/assets/vendor/bootstrap/
|
||||
0 09-10-14 15:35 hello-foxx/assets/vendor/bootstrap/css/
|
||||
22111 09-10-14 15:35 hello-foxx/assets/vendor/bootstrap/css/bootstrap-responsive.css
|
||||
16849 09-10-14 15:35 hello-foxx/assets/vendor/bootstrap/css/bootstrap-responsive.min.css
|
||||
127247 09-10-14 15:35 hello-foxx/assets/vendor/bootstrap/css/bootstrap.css
|
||||
105939 09-10-14 15:35 hello-foxx/assets/vendor/bootstrap/css/bootstrap.min.css
|
||||
0 09-10-14 15:35 hello-foxx/assets/vendor/bootstrap/img/
|
||||
8777 09-10-14 15:35 hello-foxx/assets/vendor/bootstrap/img/glyphicons-halflings-white.png
|
||||
12799 09-10-14 15:35 hello-foxx/assets/vendor/bootstrap/img/glyphicons-halflings.png
|
||||
0 09-10-14 15:35 hello-foxx/assets/vendor/jquery/
|
||||
268380 09-10-14 15:35 hello-foxx/assets/vendor/jquery/jquery.js
|
||||
0 09-10-14 15:35 hello-foxx/assets/vendor/sh/
|
||||
1981 09-10-14 15:35 hello-foxx/assets/vendor/sh/highlighter.css
|
||||
5563 09-10-14 15:35 hello-foxx/assets/vendor/sh/sh_javascript.js
|
||||
5305 09-10-14 15:35 hello-foxx/assets/vendor/sh/sh_main.min.js
|
||||
0 09-10-14 15:35 hello-foxx/files/
|
||||
3266 09-10-14 15:35 hello-foxx/files/index.html
|
||||
398 09-10-14 15:35 hello-foxx/files/static.html
|
||||
361 09-10-14 15:35 hello-foxx/kaffee.coffee
|
||||
0 09-10-14 15:35 hello-foxx/lib/
|
||||
108 09-10-14 15:35 hello-foxx/lib/a.js
|
||||
43 09-10-14 15:35 hello-foxx/lib/c.js
|
||||
1129 09-10-14 15:35 hello-foxx/manifest.json
|
||||
0 09-10-14 15:35 hello-foxx/models/
|
||||
330 09-10-14 15:35 hello-foxx/models/tiger.js
|
||||
0 09-10-14 15:35 hello-foxx/scripts/
|
||||
2065 09-10-14 15:35 hello-foxx/scripts/setup.js
|
||||
1798 09-10-14 15:35 hello-foxx/scripts/teardown.js
|
||||
17727 09-10-14 15:35 hello-foxx/thumbnail.png
|
||||
-------- -------
|
||||
614800 37 files
|
||||
|
||||
Next you have to make this file publicly available over http or https on a webserver.
|
||||
Assume we can download the app at *http://www.example.com/hello.zip*
|
||||
|
||||
!SECTION Install from remote server
|
||||
|
||||
Having the link to your foxx application at hand you can just hand this link over to the foxx manager:
|
||||
|
||||
unix> foxx-manager install http://www.example.com/hello.zip /example
|
||||
Application hello-foxx version 1.5.0 installed successfully at mount point /example
|
||||
|
||||
ArangoDB will try to download and extract the file stored at the remote location.
|
||||
|
||||
This http or https link can be used in all functions of the foxx-manager that allow to install foxx applications:
|
||||
|
||||
*install*
|
||||
|
||||
unix> foxx-manager install http://www.example.com/hello.zip /example
|
||||
Application hello-foxx version 1.5.0 installed successfully at mount point /example
|
||||
|
||||
*replace*
|
||||
|
||||
unix> foxx-manager replace http://www.example.com/hello.zip /example
|
||||
Application hello-foxx version 1.5.0 installed successfully at mount point /example
|
||||
|
||||
*upgrade*
|
||||
|
||||
unix> foxx-manager upgrade http://www.example.com/hello.zip /example
|
||||
Application hello-foxx version 1.5.0 installed successfully at mount point /example
|
|
@ -1,41 +0,0 @@
|
|||
!CHAPTER Install Applications from github
|
||||
|
||||
In this chapter we will make use of the foxx manager as described [before](FirstSteps.md).
|
||||
This time we want to install an app out of our version control hosted on github.com TODO:LINK.
|
||||
That means the foxx-manager does not know about the application information and we cannot install it simply by its name.
|
||||
|
||||
In order to install an application we need three informations:
|
||||
|
||||
* *Repository*: The name of the repository.
|
||||
* *Username*: The username of the user owning the repository.
|
||||
* *Version*: Branch or Tag name available on the repository.
|
||||
|
||||
As an example, we would like to install [https://www.github.com/arangodb/hello-foxx](https://www.github.com/arangodb/hello-foxx).
|
||||
The *username* is *arangodb*, the *repository* is *hello-foxx*.
|
||||
If we do not define a *version* it will automatically install the master branch.
|
||||
|
||||
unix> foxx-manager install git:arangodb/hello-foxx /example
|
||||
Application hello-foxx version 1.5.0 installed successfully at mount point /example
|
||||
|
||||
The hello-foxx app has defined a tag for version 1.4.4 that is named "v1.4.4".
|
||||
We can simply append this tag in the install command:
|
||||
|
||||
unix> foxx-manager install git:arangodb/hello-foxx:v1.4.4 /legacy
|
||||
Application hello-foxx version 1.4.4 installed successfully at mount point /legacy
|
||||
|
||||
This reference for github repositories can be used in all functions of the foxx-manager that allow to install foxx applications:
|
||||
|
||||
* *install*
|
||||
|
||||
unix> foxx-manager install git:arangodb/hello-foxx:v1.4.4 /legacy
|
||||
Application hello-foxx version 1.4.4 installed successfully at mount point /legacy
|
||||
|
||||
* *replace*
|
||||
|
||||
unix> foxx-manager replace git:arangodb/hello-foxx:v1.4.4 /legacy
|
||||
Application hello-foxx version 1.4.4 installed successfully at mount point /legacy
|
||||
|
||||
* *upgrade*
|
||||
|
||||
unix> foxx-manager upgrade git:arangodb/hello-foxx:v1.5.0 /legacy
|
||||
Application hello-foxx version 1.5.0 installed successfully at mount point /legacy
|
|
@ -1,36 +0,0 @@
|
|||
!CHAPTER Foxx Manager Commands
|
||||
|
||||
Use **help** to see all commands
|
||||
|
||||
`unix> foxx-manager help`
|
||||
|
||||
The following commands are available:
|
||||
|
||||
```
|
||||
available lists all Foxx applications available in the local repository
|
||||
config returns configuration information from the server
|
||||
fetch fetches a Foxx application from the central foxx-apps repository into the local repository
|
||||
fetched lists all fetched Foxx applications that were fetched into the local repository
|
||||
help shows this help
|
||||
info displays information about a Foxx application
|
||||
install fetches a Foxx application from the central foxx-apps repository, mounts it to a local URL and sets it up
|
||||
installed alias for the 'list' command
|
||||
list lists all installed Foxx applications
|
||||
mount mounts a fetched Foxx application to a local URL
|
||||
purge uninstalls a Foxx application with all its mounts and physically removes the application directory
|
||||
WARNING: this will remove all data and code of the application!
|
||||
|
||||
remove alias for the 'purge' command
|
||||
replace replaces an existing Foxx application with the current local version found in the application directory
|
||||
rescan rescans the Foxx application directory on the server side
|
||||
note: this is only required if the server-side apps directory was modified by other processes
|
||||
|
||||
search searches the local foxx-apps repository
|
||||
setup executes the setup script (app must already be mounted)
|
||||
teardown executes the teardown script (app must be still be mounted)
|
||||
WARNING: this action will remove application data if the application implements teardown!
|
||||
|
||||
uninstall unmounts a mounted Foxx application and calls its teardown method
|
||||
unmount unmounts a mounted Foxx application without calling its teardown method
|
||||
update updates the local foxx-apps repository with data from the central foxx-apps repository
|
||||
```
|
|
@ -1,20 +0,0 @@
|
|||
!CHAPTER Using Multiple Databases
|
||||
|
||||
Regular Foxx applications are database-specific. When using multiple databases
|
||||
inside the same ArangoDB instance, there can be different Foxx applications in each
|
||||
database.
|
||||
|
||||
Every operation executed via the *foxx-manager* is run in the context of
|
||||
a single database. By default (i.e. if not specified otherwise), the *foxx-manager*
|
||||
will work in the context of the *_system* database.
|
||||
|
||||
If you want the *foxx-manager* to work in the context of a different database,
|
||||
use the command-line argument *--server.database <database-name>* when invoking
|
||||
the *foxx-manager* binary.
|
||||
|
||||
!SECTION Foxx Applications and Replication
|
||||
|
||||
Foxx applications consist of a file system part (scripts in the application directory)
|
||||
and a database part. The current version of ArangoDB cannot replicate changes in the
|
||||
file system so installing, updating or removing a Foxx application using *foxx-manager*
|
||||
will not be included in the replication.
|
|
@ -1,17 +0,0 @@
|
|||
!CHAPTER Foxx Manager
|
||||
|
||||
!SECTION Foxx Applications
|
||||
|
||||
Foxx is an easy way to create APIs and simple web applications from within ArangoDB.
|
||||
It is inspired by Sinatra, the classy Ruby web framework. An application built
|
||||
with Foxx is written in JavaScript and deployed to ArangoDB directly. ArangoDB
|
||||
serves this application, you do not need a separate application server.
|
||||
|
||||
In order to share your applications with the community, we have created a central GitHub repository
|
||||
|
||||
https://github.com/arangodb/foxx-apps
|
||||
|
||||
where you can register your applications. This repository also contains the hello world application for Foxx.
|
||||
|
||||
Applications are managed using the Foxx manager *foxx-manager*. It is similar to tools like *brew* or *aptitude*.
|
||||
|
Loading…
Reference in New Issue