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.
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 [email protected] 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
#stage-apps-frappe” did not complete successfully: exit code: 1#stage-apps-frappe: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.
Follow the above guide. It works for all kind of servers.
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
Thanks ! It worked for me
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 ![]()
Thank you again
@anupd Could you please let me know where the second part is? Should we wait for the release?
Has anyone else faced this issue? The build is getting stuck at this step, as shown in the screenshot.
not written yet.
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
We would like to know if anyone has successfully implemented a multi-app server architecture using Frappe Press in a production environment.
Our objective is to:
Deploy multiple app servers
Distribute load efficiently
Scale horizontally to support a growing number of sites
Ensure production-level stability and high availability
We are particularly interested in understanding:
Whether Frappe Press natively supports multiple app servers.
Recommended architecture for scaling app servers.
How site configuration and file storage are handled across multiple app nodes.
Any challenges faced during implementation.
If anyone has implemented this in production, we would greatly appreciate insights or best practices before we proceed.