[Guide] Installing Press and get it up and running - Part 1

someone try to setup press and create tls, proxy server,.. on localhost ? im try alot always the proxy server broken Unable to start service nginx: Job for nginx.service failed because the control process exited with error code.
See “systemctl status nginx.service” and “journalctl -xeu nginx.service” for details. and sometime tls error

please if someone have any idea

Yes I have setup in local server. (only press, not f,n,m servers).

There will be errors, plenty of them.

If you post exact error here, we could help.

Hi, i’ve the same problem like this user here https://discuss.frappe.io/t/guide-installing-press-and-get-it-up-and-running-part-1/152576/17

I’ve 4 VMs, all running, in the terminal of the press server i can do a ssh login to the another server like here descripted (ssh root@n1.domain.tld and also with ssh root@public-ip).

but when i run the server setup for the proxy i got a broken error and in the ansible job the response unreachable, but no further informations.

are there further informations for debugging? or what can be the reason for not connecting?

A lot of things could break. Press is not a simple application. One of the issues could be permissions in ssh or docker or ownership issues, userid issues, or connection issues, firewall issues.

The solution is to go through every possible checks to identify the problem.

If you follow the guide line by line, you will not face problems.

hi, thanks for the answer.

where can i find some informations about the connection for example?
Further: Firewall issuses - Any informations about port forwarding?

you will not find any document related to press installation except a few posts here. you have to do that your self or find a paid help. Also it not sure if the issue is port/firewall. You have to debug.

hi @anupd I am facing issue in Press Deploy Candidate Failing – Git “dubious ownership” issue inside Press Build (Ubuntu 22)

I am facing a persistent issue when deploying a candidate using Frappe Press.
The build always fails at Install Apps → Frappe with this error:

fatal: detected dubious ownership in repository at '/home/frappe/context/apps/frappe/.git'
To add an exception for this directory, call:
    git config --global --add safe.directory /home/frappe/context/apps/frappe/.git
fatal: Could not read from remote repository.

This happens during:

bench init --python /usr/bin/python3.11 --no-backups --frappe-path file:///home/frappe/context/apps/frappe frappe-bench

The full build log shows:

[stage-0 20/27] RUN --mount=type=cache,target=/home/frappe/.cache ...
--mount=type=bind,source=apps/frappe,target=/home/frappe/context/apps/frappe

fatal: detected dubious ownership in repository at '/home/frappe/context/apps/frappe/.git'
CommandFailedError: git clone file:///home/frappe/context/apps/frappe --depth 1 --origin upstream

below is the error Setting Up Environment
$ /usr/bin/python3.11 -m venv env
$ /home/frappe/frappe-bench/env/bin/python -m pip install --quiet --upgrade pip==25.3
$ /home/frappe/frappe-bench/env/bin/python -m pip install --quiet wheel
Getting frappe
$ git clone file:///home/frappe/context/apps/frappe --depth 1 --origin upstream
Cloning into ‘frappe’…
fatal: detected dubious ownership in repository at ‘/home/frappe/context/apps/frappe/.git’
To add an exception for this directory, call:

git config --global --add safe.directory /home/frappe/context/apps/frappe/.git

fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
subprocess.CalledProcessError: Command ‘git clone file:///home/frappe/context/apps/frappe --depth 1 --origin upstream’ returned non-zero exit status 128.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File “/home/frappe/.local/lib/python3.11/site-packages/bench/commands/make.py”, line 75, in init
init(
File “/home/frappe/.local/lib/python3.11/site-packages/bench/utils/render.py”, line 105, in wrapper_fn
return fn(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^
File “/home/frappe/.local/lib/python3.11/site-packages/bench/utils/system.py”, line 87, in init
get_app(
File “/home/frappe/.local/lib/python3.11/site-packages/bench/app.py”, line 779, in get_app
app.get()
File “/home/frappe/.local/lib/python3.11/site-packages/bench/utils/render.py”, line 126, in wrapper_fn
return fn(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^
File “/home/frappe/.local/lib/python3.11/site-packages/bench/app.py”, line 202, in get
self.bench.run(
File “/home/frappe/.local/lib/python3.11/site-packages/bench/bench.py”, line 49, in run
return exec_cmd(cmd, cwd=cwd or self.cwd, _raise=_raise, env=env)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/frappe/.local/lib/python3.11/site-packages/bench/utils/init.py”, line 184, in exec_cmd
raise CommandFailedError(cmd) from subprocess.CalledProcessError(return_code, cmd)
bench.exceptions.CommandFailedError: git clone file:///home/frappe/context/apps/frappe --depth 1 --origin upstream

ERROR: There was a problem while creating frappe-bench
Do you want to rollback these changes? [y/N]: Aborted!
process “/bin/sh -c bench init --python /usr/bin/python${PYTHON_VERSION} --no-backups --frappe-path file:///home/frappe/context/apps/frappe frappe-bench #stage-apps-frappe” did not complete successfully: exit code: 1

[stage-0 20/27] RUN --mount=type=cache,sharing=locked,target=/home/frappe/.cache,uid=1000,gid=1000 --mount=type=bind,source=apps/frappe,target=/home/frappe/context/apps/frappe bench init --python /usr/bin/python3.11 --no-backups --frappe-path file:///home/frappe/context/apps/frappe frappe-bench #stage-apps-frappe:
self.bench.run(
File “/home/frappe/.local/lib/python3.11/site-packages/bench/bench.py”, line 49, in run
return exec_cmd(cmd, cwd=cwd or self.cwd, _raise=_raise, env=env)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/frappe/.local/lib/python3.11/site-packages/bench/utils/init.py”, line 184, in exec_cmd
raise CommandFailedError(cmd) from subprocess.CalledProcessError(return_code, cmd)
bench.exceptions.CommandFailedError: git clone file:///home/frappe/context/apps/frappe --depth 1 --origin upstream
9.887
ERROR: There was a problem while creating frappe-bench
Do you want to rollback these changes? [y/N]: Aborted!

failed to build: failed to solve: process “/bin/sh -c bench init --python /usr/bin/python${PYTHON_VERSION} --no-backups --frappe-path file:///home/frappe/context/apps/frappe frappe-bench #stage-apps-frappe” did not complete successfully: exit code: 1

How do I fix it please help @anupd

I have an oci server wanted to use that for press and setup multiple sites and benchs how to do that there is no guide for OCI

Start by provisioning three servers: one each for proxy, app, and database. Configure DNS with wildcard and direct A records pointing to the proxy. SSH into the servers and use the Press UI to register and setup each server via “Setup Server”, which runs Ansible tasks. Once infra is active, add your bench via a Deploy Candidate, and you can create multiple sites from the dashboard. The agent handles provisioning and orchestration behind the scenes.

1 Like

Follow the above guide. It works for all kind of servers.

@anupd

Thank you for sharing the detailed documentation related to Press.

Could you please assist me with the following issue?

I have completed all the steps as mentioned up to the Root Domain addition. However, after adding the Root Domain, I am encountering a TLS certificate error. Please note that I have already created all the required directories as specified in the documentation and have also installed Certbot.

sudo apt update
sudo apt install python3 python3-dev python3-venv libaugeas-dev gcc

sudo apt-get remove certbot


sudo python3 -m venv /opt/certbot/
sudo /opt/certbot/bin/pip install --upgrade pip


sudo /opt/certbot/bin/pip install certbot certbot-nginx


sudo ln -s /opt/certbot/bin/certbot /usr/local/bin/certbot


sudo /opt/certbot/bin/pip install certbot-dns-route53

I faced same issue and after following Certbot documentation and these commands worked form me on Ubuntu 24.04

1 Like

Thanks ! It worked for me

1 Like

Great guide!

I followed it to the end but at the launch of the deployment I keep getting this error :

Data:
{
    "team": "Team(bhupe4qfol)",
    "user": "Administrator"
}
Exception:
Traceback with variables (most recent call last):
  File "apps/press/press/press/doctype/deploy_candidate_build/deploy_candidate_build.py", line 1471, in run_scheduled_builds
    doc.run_scheduled_build_and_deploy()
      max_builds = 5
      dcs = ['3pgleg90qo']
      dc = '3pgleg90qo'
      doc = <DeployCandidateBuild: 3pgleg90qo>
  File "apps/press/press/press/doctype/deploy_candidate_build/deploy_candidate_build.py", line 1227, in run_scheduled_build_and_deploy
    self.pre_build()
      self = <DeployCandidateBuild: 3pgleg90qo>
  File "apps/press/press/press/doctype/deploy_candidate_build/deploy_candidate_build.py", line 1194, in pre_build
    frappe.enqueue_doc(
      self = <DeployCandidateBuild: 3pgleg90qo>
      kwargs = {}
      user = 'Administrator'
      session_data = {}
      team = <Team: bhupe4qfol>
      queue = 'build'
  File "apps/frappe/frappe/__init__.py", line 2273, in enqueue_doc
    return frappe.utils.background_jobs.enqueue_doc(*args, **kwargs)
      args = ('Deploy Candidate Build', '3pgleg90qo', '_build')
      kwargs = {'queue': 'build', 'timeout': 2400, 'enqueue_after_commit': True}
      frappe = <module 'frappe' from 'apps/frappe/frappe/__init__.py'>
  File "apps/frappe/frappe/utils/background_jobs.py", line 177, in enqueue_doc
    return enqueue(
      doctype = 'Deploy Candidate Build'
      name = '3pgleg90qo'
      method = '_build'
      queue = 'build'
      timeout = 2400
      now = False
      kwargs = {'enqueue_after_commit': True}
  File "apps/frappe/frappe/utils/background_jobs.py", line 123, in enqueue
    q = get_queue(queue, is_async=is_async)
      method = 'frappe.utils.background_jobs.run_doc_method'
      queue = 'build'
      event = None
      is_async = True
      job_name = None
      now = False
      enqueue_after_commit = True
      deduplicate = False
      kwargs = {'doctype': 'Deploy Candidate Build', 'name': '3pgleg90qo', 'doc_method': '_build'}
      call_directly = False
      at_front = False
      job_id = 'sitename.com::08e3d84e-eebc-4c7c-ac20-2ff2e949afc0'
      on_failure = None
      on_success = None
      timeout = 2400
  File "apps/frappe/frappe/utils/background_jobs.py", line 458, in get_queue
    validate_queue(qtype)
      qtype = 'build'
      is_async = True
  File "apps/frappe/frappe/utils/background_jobs.py", line 467, in validate_queue
    frappe.throw(_("Queue should be one of {0}").format(", ".join(default_queue_list)))
      queue = 'build'
      default_queue_list = ['short', 'default', 'long']
  File "apps/frappe/frappe/__init__.py", line 609, in throw
    msgprint(
      msg = 'Queue should be one of short, default, long'
      exc = <class 'frappe.exceptions.ValidationError'>
      title = None
      is_minimizable = False
      wide = False
      as_list = False
      primary_action = None
  File "apps/frappe/frappe/__init__.py", line 574, in msgprint
    _raise_exception()
      title = None
      as_table = False
      as_list = False
      indicator = 'red'
      alert = False
      primary_action = None
      is_minimizable = False
      wide = False
      realtime = False
      sys = <module 'sys' (built-in)>
      _raise_exception = <function msgprint.<locals>._raise_exception at 0x7462180cd090>
      inspect = <module 'inspect' from '/usr/lib/python3.10/inspect.py'>
      msg = 'Queue should be one of short, default, long'
      out = {'message': 'Queue should be one of short, default, long', 'title': 'Message', 'indicator': 'red', 'raise_exception': 1, '__frappe_exc_id': '148a9fb2cc0afd383baa79ee7fe0453728c6805e7cfe8f8f39fc54b9'}
      raise_exception = <class 'frappe.exceptions.ValidationError'>
  File "apps/frappe/frappe/__init__.py", line 525, in _raise_exception
    raise exc
      exc = ValidationError('Queue should be one of short, default, long')
      inspect = <module 'inspect' from '/usr/lib/python3.10/inspect.py'>
      msg = 'Queue should be one of short, default, long'
      out = {'message': 'Queue should be one of short, default, long', 'title': 'Message', 'indicator': 'red', 'raise_exception': 1, '__frappe_exc_id': '148a9fb2cc0afd383baa79ee7fe0453728c6805e7cfe8f8f39fc54b9'}
      raise_exception = <class 'frappe.exceptions.ValidationError'>
frappe.exceptions.ValidationError: Queue should be one of short, default, long

when I check the apps tab on the release group, I see these errors :

And on each one of the apps, it shows this error on the App source:

{"message":"API rate limit exceeded for 11.22.33.44 (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)","documentation_url":"https://docs.github.com/rest/overview/resources-in-the-rest-api#rate-limiting"}

I tried getting ssh to automatically authenticate to github with a new ssh key, but it didin’t help, even though I am able to ssh from the shell on the press server….

I’ve been scratching my head over this for too long now :slight_smile:

Thank you again

@anupd Could you please let me know where the second part is? Should we wait for the release?

1 Like

Has anyone else faced this issue? The build is getting stuck at this step, as shown in the screenshot.

not written yet.

2 Likes

check error logs. its mostly some build errors

I am installing this for the first time. Could you please advise which logs I should normally check during the installation and setup process?

It would be great for us to get the part 2