Devweb #

Contents #

Overview #

All CIS users have access to the departmental devweb (development web server) system. This platform allows you to develop and run web app projects without having to worry about managing any infrastructure like web or database servers.

The system is made up of two components:

  1. App containers
  2. Database servers

Note: the instructions below always refer to the current devweb version (2023). Older devweb servers may behave differently.

App containers #

The app container system manages app and web server containers (like NodeJS, Apache and Tomcat) for you, automatically starting containers running the code you've copied into the relevant DEVWEB folder in your Linux home directory.

Using devweb app containers, you can easily run code in a variety of languages and frameworks. The following pages detail any configuration that's specific to that app type, and should be read in conjunction with the Getting started section below.

Web apps running on devweb are accessible from the Internet.

Architecture #

Most devweb users won't need to worry about the details of the internal architecture but it may be helpful when debugging, particularly if you're trying to integrate existing Python or NodeJS code.

devweb architecture diagram

HTTP (web) requests to your devweb application flow as follows:

  1. Your client (user's web browser) visits your URL.
  2. Their request first hits the reverse proxy. This component, managed by CIS IT Support, directs requests to the correct container (making sure, for example, that users visiting your Python URL have their requests handled by your Python app).
  3. Within your container, your application server accepts the incoming request. The app server used is specific to your container type, for example Java uses Tomcat and Python uses Gunicorn. You shouldn't have to worry about this, but if you're using NodeJS then you may need to ensure that your app listens on the right port (3000).
  4. The app server passes the request to your code. In Python, this uses a mechanism called WSGI.

Database servers #

The devweb database server system provides users with individual accounts and databases on the following database servers:

Devweb database servers are only accessible on the campus network, the VPN or via port tunnelling through cafe. They can be accessed from your devweb app container.

Requesting access #

App containers are created automatically when you first access a devweb URL (see Getting started). Database accounts are created upon request. If you need a devweb database, please contact us, making sure to include which system you need access to (e.g. MySQL, PostgreSQL).

If you require devweb database access for class labs or a class project, your lecturer or tutor may have already asked us to bulk-create accounts for the entire class; you should check with them first before making an individual account request.

If you have requested access and can't find your credentials, please check your junk mail and Outlook Other Inbox (if you have that feature enabled).

Getting started #

Your devweb folders are created automatically the first time someone tries to access your devweb site URL. New devweb servers are created at the start of each academic year (containing the latest OS and framework updates), with hostnames indicating the year, for example https://devweb2023.cis.strath.ac.uk was created for the current academic year.

Each app container type (e.g. PHP, Python) has a different subfolder on the devweb server, formatted as follows (replace the example username below, USERNAME, with your own DS username):

App type URL path Linux home path
PHP/Static /~USERNAME ~/DEVWEB/2023/
Java /USERNAME ~/DEVWEB/2023/userlets
NodeJS /USERNAME-nodejs ~/DEVWEB/2023/nodejs
Python /USERNAME-python ~/DEVWEB/2023/python

The first time you access your container URL, devweb will create the container and the filesystem path in your Linux home directory - don't try to create the folder structure manually as it's important that the permissions be set correctly (as per the auto-provisioning system).

To see your devweb paths and URLs, enter your username:

For help with specific application types, please see the detailed pages linked in the section above.

FAQ #

Can I run a custom or third party container image? #

We don't support arbitrary container images.

Are my files and databases migrated forward to new devweb years? #

No. As the container image software (and database server versions) get updated every year, we don't automatically migrate forward any user data. We keep previous devweb year container running for a few months after introducing the new images, which should give you an opportunity to test your code while running under the new version. For databases, you should export (e.g. mysqldump or pg_dump) from the old server and re-import your data into the new server.

Do I automatically get a new devweb database every year? #

No, not automatically. If you'd like a new database in subsequent years, please submit a request once the new academic year begins.

How can I access my devweb code/files remotely (off-campus)? #

See the Storage page for more details on how to copy data to/from your NFS home directory on Linux (where your DEVWEB directory resides). If copying data to devweb, your destination should be ~/DEVWEB/2023/; you may find a graphical client like WinSCP useful.

How can I reset my database password? #

If you've forgotten your database password, please contact CIS IT Support, making sure to include the devweb year (e.g. devweb2023) and database type (e.g. MySQL) for which you require your password reset.

I changed my Oracle password and now it doesn't work! #

Due to a long-standing bug in how the sqlplus command passes credentials to the server, you should avoid using the @ character or any non-ASCII symbols in your password. If you've used this when setting your password, you should contact us to have your Oracle password reset.

How can I access my devweb database from home (off-campus)? #

See Remote compute for more details.