Developer Portal website.
This website is available as a Docker image here:
https://hub.docker.com/r/silintl/developer-portal/
We recommend using that as the FROM
in your own Dockerfile in your own
private repo, where you would COPY
into your own Docker image any custom files
you need (e.g. your own /data/public/img/logos/site-logo.png
, etc.).
Your Dockerfile should also run /tmp/install-deps-and-ssp-overrides.sh
, since
that is what installs the necessary composer dependencies.
# Change 5.0.0 to the latest tagged version or whichever you want to have
FROM silintl/developer-portal:5.0.0
# Install dependencies
RUN /tmp/install-deps-and-ssp-overrides.sh
# Copy in any custom files needed, which are stored in this repo.
COPY build/favicons /data/public
COPY build/logos /data/public/img/logos
WORKDIR /data
EXPOSE 80
# Record now as the build date/time (in a friendly format).
RUN date -u +"%B %-d, %Y, %-I:%M%P (%Z)" > /data/protected/data/version.txt
CMD ["/data/run.sh"]
The environment variables that this code uses are (for the purposes of
semantic versioning) considered this code's public interface. That is how
backwards-compatibility will be determined. If a new version of this code is
released that bumps the major version number (e.g. from 1.x.y
to 2.0.0
),
you will probably have to change something about what environment variables
you are providing when running this Docker image.
- Install VirtualBox
- Install Vagrant
- Clone the repository:
git clone [email protected]:silinternational/developer-portal.git
- Copy the
local.env.dist
file tolocal.env
, and update its contents appropriately. - Open a shell/terminal in the project's root folder.
- Launch environment with
vagrant up
- Modify your hosts file per the instructions below.
- Open browser and go to http://your-domain-name/
- If you need to make yourself an admin, login first (to make sure your user record exists), then go to http://your-domain-name/phpmyadmin. Login with the project's database credentials, find your user in the user table, and change the role to 'admin'.
SHOW_POPULAR_APIS
(boolean)
Whether to show the most popular APIs (based on the number of approved keys). If false, the fileapplication/protected/views/partials/home-lower-right.php
will be shown (which you can set the content of in thesite_text
table in the database).
Add one of the following lines to your hosts file (replacing
your-domain-name
with the domain name you want to use).
If using Vagrant:
192.168.33.10 your-domain-name
If using Docker directly (without Vagrant):
127.0.0.1 your-domain-name
If you want to add an API to the developer portal locally, such as for development or manual testing...
- Bring up the developer portal:
make
- Bring up phpMyAdmin:
make phpmyadmin
- Bring up httpbin:
make httpbin
- Log in to the developer portal (e.g. http://localhost/ or your custom domain name)
- Log in to phpMyAdmin:
- Go to http://localhost:8001
- Use
developer_portal
as the username and password - Change your user record's
role
to "admin"
- In the developer portal, add an API:
- When logged into the local developer portal, click "Browse APIs"
- Click the "Publish a new API" button
- Use
test
as the API code name,httpbin
as the Endpoint, "HTTP" as the Endpoint Protocol, and whatever you want for the other values - Click the "Save" button
- Grant yourself a key to that API ("Actions" > "Get/Request Key", etc.)
- Click the "API Playground" link in the header menu
- Put
/anything
in the Path field (literally) and submit the form - You should see an API response (at the bottom) from the local httpbin docker container.
If you try to access http://your-domain-name/phpmyadmin/ and get the following error...
phpMyAdmin - Error
Wrong permissions on configuration file, should not be world writable!
... then add the following line to the end of
vendor\phpmyadmin\phpmyadmin\config.inc.php
:
$cfg['CheckConfigurationPermissions'] = false;