├── .gitignore ├── .gitmodules ├── .vscode ├── extensions.json └── launch.json ├── README.md ├── odoo.conf ├── odoo_codespace.sh └── wkhtmltox_0.12.6.1-2.jammy_amd64.deb /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by https://www.toptal.com/developers/gitignore/api/macos,linux,windows,python,pycharm+all,vscode,visualstudio,visualstudiocode 2 | # Edit at https://www.toptal.com/developers/gitignore?templates=macos,linux,windows,python,pycharm+all,vscode,visualstudio,visualstudiocode 3 | 4 | ### Linux ### 5 | *~ 6 | 7 | # temporary files which can be created if a process still has a handle open of a deleted file 8 | .fuse_hidden* 9 | 10 | # KDE directory preferences 11 | .directory 12 | 13 | # Linux trash folder which might appear on any partition or disk 14 | .Trash-* 15 | 16 | # .nfs files are created when an open file is removed but is still being accessed 17 | .nfs* 18 | 19 | ### macOS ### 20 | # General 21 | .DS_Store 22 | .AppleDouble 23 | .LSOverride 24 | 25 | # Icon must end with two \r 26 | Icon 27 | 28 | 29 | # Thumbnails 30 | ._* 31 | 32 | # Files that might appear in the root of a volume 33 | .DocumentRevisions-V100 34 | .fseventsd 35 | .Spotlight-V100 36 | .TemporaryItems 37 | .Trashes 38 | .VolumeIcon.icns 39 | .com.apple.timemachine.donotpresent 40 | 41 | # Directories potentially created on remote AFP share 42 | .AppleDB 43 | .AppleDesktop 44 | Network Trash Folder 45 | Temporary Items 46 | .apdisk 47 | 48 | ### PyCharm+all ### 49 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider 50 | # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 51 | 52 | # User-specific stuff 53 | .idea/**/workspace.xml 54 | .idea/**/tasks.xml 55 | .idea/**/usage.statistics.xml 56 | .idea/**/dictionaries 57 | .idea/**/shelf 58 | 59 | # Generated files 60 | .idea/**/contentModel.xml 61 | 62 | # Sensitive or high-churn files 63 | .idea/**/dataSources/ 64 | .idea/**/dataSources.ids 65 | .idea/**/dataSources.local.xml 66 | .idea/**/sqlDataSources.xml 67 | .idea/**/dynamic.xml 68 | .idea/**/uiDesigner.xml 69 | .idea/**/dbnavigator.xml 70 | 71 | # Gradle 72 | .idea/**/gradle.xml 73 | .idea/**/libraries 74 | 75 | # Gradle and Maven with auto-import 76 | # When using Gradle or Maven with auto-import, you should exclude module files, 77 | # since they will be recreated, and may cause churn. Uncomment if using 78 | # auto-import. 79 | # .idea/artifacts 80 | # .idea/compiler.xml 81 | # .idea/jarRepositories.xml 82 | # .idea/modules.xml 83 | # .idea/*.iml 84 | # .idea/modules 85 | # *.iml 86 | # *.ipr 87 | 88 | # CMake 89 | cmake-build-*/ 90 | 91 | # Mongo Explorer plugin 92 | .idea/**/mongoSettings.xml 93 | 94 | # File-based project format 95 | *.iws 96 | 97 | # IntelliJ 98 | out/ 99 | 100 | # mpeltonen/sbt-idea plugin 101 | .idea_modules/ 102 | 103 | # JIRA plugin 104 | atlassian-ide-plugin.xml 105 | 106 | # Cursive Clojure plugin 107 | .idea/replstate.xml 108 | 109 | # Crashlytics plugin (for Android Studio and IntelliJ) 110 | com_crashlytics_export_strings.xml 111 | crashlytics.properties 112 | crashlytics-build.properties 113 | fabric.properties 114 | 115 | # Editor-based Rest Client 116 | .idea/httpRequests 117 | 118 | # Android studio 3.1+ serialized cache file 119 | .idea/caches/build_file_checksums.ser 120 | 121 | ### PyCharm+all Patch ### 122 | # Ignores the whole .idea folder and all .iml files 123 | # See https://github.com/joeblau/gitignore.io/issues/186 and https://github.com/joeblau/gitignore.io/issues/360 124 | 125 | .idea/ 126 | 127 | # Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-249601023 128 | 129 | *.iml 130 | modules.xml 131 | .idea/misc.xml 132 | *.ipr 133 | 134 | # Sonarlint plugin 135 | .idea/sonarlint 136 | 137 | ### Python ### 138 | # Byte-compiled / optimized / DLL files 139 | __pycache__/ 140 | *.py[cod] 141 | *$py.class 142 | 143 | # C extensions 144 | *.so 145 | 146 | # Distribution / packaging 147 | .Python 148 | build/ 149 | develop-eggs/ 150 | dist/ 151 | downloads/ 152 | eggs/ 153 | .eggs/ 154 | parts/ 155 | sdist/ 156 | var/ 157 | wheels/ 158 | pip-wheel-metadata/ 159 | share/python-wheels/ 160 | *.egg-info/ 161 | .installed.cfg 162 | *.egg 163 | MANIFEST 164 | 165 | # PyInstaller 166 | # Usually these files are written by a python script from a template 167 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 168 | *.manifest 169 | *.spec 170 | 171 | # Installer logs 172 | pip-log.txt 173 | pip-delete-this-directory.txt 174 | 175 | # Unit test / coverage reports 176 | htmlcov/ 177 | .tox/ 178 | .nox/ 179 | .coverage 180 | .coverage.* 181 | .cache 182 | nosetests.xml 183 | coverage.xml 184 | *.cover 185 | *.py,cover 186 | .hypothesis/ 187 | .pytest_cache/ 188 | pytestdebug.log 189 | 190 | # Translations 191 | *.mo 192 | *.pot 193 | 194 | # Django stuff: 195 | *.log 196 | local_settings.py 197 | db.sqlite3 198 | db.sqlite3-journal 199 | 200 | # Flask stuff: 201 | instance/ 202 | .webassets-cache 203 | 204 | # Scrapy stuff: 205 | .scrapy 206 | 207 | # Sphinx documentation 208 | docs/_build/ 209 | doc/_build/ 210 | 211 | # PyBuilder 212 | target/ 213 | 214 | # Jupyter Notebook 215 | .ipynb_checkpoints 216 | 217 | # IPython 218 | profile_default/ 219 | ipython_config.py 220 | 221 | # pyenv 222 | .python-version 223 | 224 | # pipenv 225 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 226 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 227 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 228 | # install all needed dependencies. 229 | #Pipfile.lock 230 | 231 | # poetry 232 | #poetry.lock 233 | 234 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 235 | __pypackages__/ 236 | 237 | # Celery stuff 238 | celerybeat-schedule 239 | celerybeat.pid 240 | 241 | # SageMath parsed files 242 | *.sage.py 243 | 244 | # Environments 245 | # .env 246 | .env/ 247 | .venv/ 248 | env/ 249 | venv/ 250 | ENV/ 251 | env.bak/ 252 | venv.bak/ 253 | pythonenv* 254 | 255 | # Spyder project settings 256 | .spyderproject 257 | .spyproject 258 | 259 | # Rope project settings 260 | .ropeproject 261 | 262 | # mkdocs documentation 263 | /site 264 | 265 | # mypy 266 | .mypy_cache/ 267 | .dmypy.json 268 | dmypy.json 269 | 270 | # Pyre type checker 271 | .pyre/ 272 | 273 | # pytype static type analyzer 274 | .pytype/ 275 | 276 | # operating system-related files 277 | *.DS_Store #file properties cache/storage on macOS 278 | Thumbs.db #thumbnail cache on Windows 279 | 280 | # profiling data 281 | .prof 282 | 283 | ### Docker ### 284 | odoo-docker-dev/ 285 | 286 | ### VisualStudioCode ### 287 | !.vscode/tasks.json 288 | *.code-workspace 289 | 290 | ### VisualStudioCode Patch ### 291 | # Ignore all local history of files 292 | .history 293 | .ionide 294 | 295 | ### vscode ### 296 | !.vscode/settings.json 297 | 298 | ### Windows ### 299 | # Windows thumbnail cache files 300 | Thumbs.db 301 | Thumbs.db:encryptable 302 | ehthumbs.db 303 | ehthumbs_vista.db 304 | 305 | # Dump file 306 | *.stackdump 307 | 308 | # Folder config file 309 | [Dd]esktop.ini 310 | 311 | # Recycle Bin used on file shares 312 | $RECYCLE.BIN/ 313 | 314 | # Windows Installer files 315 | *.cab 316 | *.msi 317 | *.msix 318 | *.msm 319 | *.msp 320 | 321 | # Windows shortcuts 322 | *.lnk 323 | 324 | ### VisualStudio ### 325 | ## Ignore Visual Studio temporary files, build results, and 326 | ## files generated by popular Visual Studio add-ons. 327 | ## 328 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore 329 | 330 | # User-specific files 331 | *.rsuser 332 | *.suo 333 | *.user 334 | *.userosscache 335 | *.sln.docstates 336 | 337 | # User-specific files (MonoDevelop/Xamarin Studio) 338 | *.userprefs 339 | 340 | # Mono auto generated files 341 | mono_crash.* 342 | 343 | # Build results 344 | [Dd]ebug/ 345 | [Dd]ebugPublic/ 346 | [Rr]elease/ 347 | [Rr]eleases/ 348 | x64/ 349 | x86/ 350 | [Ww][Ii][Nn]32/ 351 | [Aa][Rr][Mm]/ 352 | [Aa][Rr][Mm]64/ 353 | bld/ 354 | [Bb]in/ 355 | [Oo]bj/ 356 | [Ll]og/ 357 | [Ll]ogs/ 358 | 359 | # Visual Studio 2015/2017 cache/options directory 360 | .vs/ 361 | # Uncomment if you have tasks that create the project's static files in wwwroot 362 | #wwwroot/ 363 | 364 | # Visual Studio 2017 auto generated files 365 | Generated\ Files/ 366 | 367 | # MSTest test Results 368 | [Tt]est[Rr]esult*/ 369 | [Bb]uild[Ll]og.* 370 | 371 | # NUnit 372 | *.VisualState.xml 373 | TestResult.xml 374 | nunit-*.xml 375 | 376 | # Build Results of an ATL Project 377 | [Dd]ebugPS/ 378 | [Rr]eleasePS/ 379 | dlldata.c 380 | 381 | # Benchmark Results 382 | BenchmarkDotNet.Artifacts/ 383 | 384 | # .NET Core 385 | project.lock.json 386 | project.fragment.lock.json 387 | artifacts/ 388 | 389 | # ASP.NET Scaffolding 390 | ScaffoldingReadMe.txt 391 | 392 | # StyleCop 393 | StyleCopReport.xml 394 | 395 | # Files built by Visual Studio 396 | *_i.c 397 | *_p.c 398 | *_h.h 399 | *.ilk 400 | *.meta 401 | *.obj 402 | *.iobj 403 | *.pch 404 | *.pdb 405 | *.ipdb 406 | *.pgc 407 | *.pgd 408 | *.rsp 409 | *.sbr 410 | *.tlb 411 | *.tli 412 | *.tlh 413 | *.tmp 414 | *.tmp_proj 415 | *_wpftmp.csproj 416 | *.vspscc 417 | *.vssscc 418 | .builds 419 | *.pidb 420 | *.svclog 421 | *.scc 422 | 423 | # Chutzpah Test files 424 | _Chutzpah* 425 | 426 | # Visual C++ cache files 427 | ipch/ 428 | *.aps 429 | *.ncb 430 | *.opendb 431 | *.opensdf 432 | *.sdf 433 | *.cachefile 434 | *.VC.db 435 | *.VC.VC.opendb 436 | 437 | # Visual Studio profiler 438 | *.psess 439 | *.vsp 440 | *.vspx 441 | *.sap 442 | 443 | # Visual Studio Trace Files 444 | *.e2e 445 | 446 | # TFS 2012 Local Workspace 447 | $tf/ 448 | 449 | # Guidance Automation Toolkit 450 | *.gpState 451 | 452 | # ReSharper is a .NET coding add-in 453 | _ReSharper*/ 454 | *.[Rr]e[Ss]harper 455 | *.DotSettings.user 456 | 457 | # TeamCity is a build add-in 458 | _TeamCity* 459 | 460 | # DotCover is a Code Coverage Tool 461 | *.dotCover 462 | 463 | # AxoCover is a Code Coverage Tool 464 | .axoCover/* 465 | !.axoCover/settings.json 466 | 467 | # Coverlet is a free, cross platform Code Coverage Tool 468 | coverage*[.json, .xml, .info] 469 | 470 | # Visual Studio code coverage results 471 | *.coverage 472 | *.coveragexml 473 | 474 | # NCrunch 475 | _NCrunch_* 476 | .*crunch*.local.xml 477 | nCrunchTemp_* 478 | 479 | # MightyMoose 480 | *.mm.* 481 | AutoTest.Net/ 482 | 483 | # Web workbench (sass) 484 | .sass-cache/ 485 | 486 | # Installshield output folder 487 | [Ee]xpress/ 488 | 489 | # DocProject is a documentation generator add-in 490 | DocProject/buildhelp/ 491 | DocProject/Help/*.HxT 492 | DocProject/Help/*.HxC 493 | DocProject/Help/*.hhc 494 | DocProject/Help/*.hhk 495 | DocProject/Help/*.hhp 496 | DocProject/Help/Html2 497 | DocProject/Help/html 498 | 499 | # Click-Once directory 500 | publish/ 501 | 502 | # Publish Web Output 503 | *.[Pp]ublish.xml 504 | *.azurePubxml 505 | # Note: Comment the next line if you want to checkin your web deploy settings, 506 | # but database connection strings (with potential passwords) will be unencrypted 507 | *.pubxml 508 | *.publishproj 509 | 510 | # Microsoft Azure Web App publish settings. Comment the next line if you want to 511 | # checkin your Azure Web App publish settings, but sensitive information contained 512 | # in these scripts will be unencrypted 513 | PublishScripts/ 514 | 515 | # NuGet Packages 516 | *.nupkg 517 | # NuGet Symbol Packages 518 | *.snupkg 519 | # The packages folder can be ignored because of Package Restore 520 | **/[Pp]ackages/* 521 | # except build/, which is used as an MSBuild target. 522 | !**/[Pp]ackages/build/ 523 | # Uncomment if necessary however generally it will be regenerated when needed 524 | #!**/[Pp]ackages/repositories.config 525 | # NuGet v3's project.json files produces more ignorable files 526 | *.nuget.props 527 | *.nuget.targets 528 | 529 | # Microsoft Azure Build Output 530 | csx/ 531 | *.build.csdef 532 | 533 | # Microsoft Azure Emulator 534 | ecf/ 535 | rcf/ 536 | 537 | # Windows Store app package directories and files 538 | AppPackages/ 539 | BundleArtifacts/ 540 | Package.StoreAssociation.xml 541 | _pkginfo.txt 542 | *.appx 543 | *.appxbundle 544 | *.appxupload 545 | 546 | # Visual Studio cache files 547 | # files ending in .cache can be ignored 548 | *.[Cc]ache 549 | # but keep track of directories ending in .cache 550 | !?*.[Cc]ache/ 551 | 552 | # Others 553 | ClientBin/ 554 | ~$* 555 | *.dbmdl 556 | *.dbproj.schemaview 557 | *.jfm 558 | *.pfx 559 | *.publishsettings 560 | orleans.codegen.cs 561 | 562 | # Including strong name files can present a security risk 563 | # (https://github.com/github/gitignore/pull/2483#issue-259490424) 564 | #*.snk 565 | 566 | # Since there are multiple workflows, uncomment next line to ignore bower_components 567 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) 568 | #bower_components/ 569 | 570 | # RIA/Silverlight projects 571 | Generated_Code/ 572 | 573 | # Backup & report files from converting an old project file 574 | # to a newer Visual Studio version. Backup files are not needed, 575 | # because we have git ;-) 576 | _UpgradeReport_Files/ 577 | Backup*/ 578 | UpgradeLog*.XML 579 | UpgradeLog*.htm 580 | ServiceFabricBackup/ 581 | *.rptproj.bak 582 | 583 | # SQL Server files 584 | *.mdf 585 | *.ldf 586 | *.ndf 587 | 588 | # Business Intelligence projects 589 | *.rdl.data 590 | *.bim.layout 591 | *.bim_*.settings 592 | *.rptproj.rsuser 593 | *- [Bb]ackup.rdl 594 | *- [Bb]ackup ([0-9]).rdl 595 | *- [Bb]ackup ([0-9][0-9]).rdl 596 | 597 | # Microsoft Fakes 598 | FakesAssemblies/ 599 | 600 | # GhostDoc plugin setting file 601 | *.GhostDoc.xml 602 | 603 | # Node.js Tools for Visual Studio 604 | .ntvs_analysis.dat 605 | node_modules/ 606 | 607 | # Visual Studio 6 build log 608 | *.plg 609 | 610 | # Visual Studio 6 workspace options file 611 | *.opt 612 | 613 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) 614 | *.vbw 615 | 616 | # Visual Studio LightSwitch build output 617 | **/*.HTMLClient/GeneratedArtifacts 618 | **/*.DesktopClient/GeneratedArtifacts 619 | **/*.DesktopClient/ModelManifest.xml 620 | **/*.Server/GeneratedArtifacts 621 | **/*.Server/ModelManifest.xml 622 | _Pvt_Extensions 623 | 624 | # Paket dependency manager 625 | .paket/paket.exe 626 | paket-files/ 627 | 628 | # FAKE - F# Make 629 | .fake/ 630 | 631 | # CodeRush personal settings 632 | .cr/personal 633 | 634 | # Python Tools for Visual Studio (PTVS) 635 | *.pyc 636 | 637 | # Cake - Uncomment if you are using it 638 | # tools/** 639 | # !tools/packages.config 640 | 641 | # Tabs Studio 642 | *.tss 643 | 644 | # Telerik's JustMock configuration file 645 | *.jmconfig 646 | 647 | # BizTalk build output 648 | *.btp.cs 649 | *.btm.cs 650 | *.odx.cs 651 | *.xsd.cs 652 | 653 | # OpenCover UI analysis results 654 | OpenCover/ 655 | 656 | # Azure Stream Analytics local run output 657 | ASALocalRun/ 658 | 659 | # MSBuild Binary and Structured Log 660 | *.binlog 661 | 662 | # NVidia Nsight GPU debugger configuration file 663 | *.nvuser 664 | 665 | # MFractors (Xamarin productivity tool) working folder 666 | .mfractor/ 667 | 668 | # Local History for Visual Studio 669 | .localhistory/ 670 | 671 | # BeatPulse healthcheck temp database 672 | healthchecksdb 673 | 674 | # Backup folder for Package Reference Convert tool in Visual Studio 2017 675 | MigrationBackup/ 676 | 677 | # Ionide (cross platform F# VS Code tools) working folder 678 | .ionide/ 679 | 680 | # Fody - auto-generated XML schema 681 | FodyWeavers.xsd 682 | 683 | # End of https://www.toptal.com/developers/gitignore/api/macos,linux,windows,python,pycharm+all,vscode,visualstudio,visualstudiocode 684 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "odoo"] 2 | path = odoo 3 | url = https://github.com/odoo/odoo.git 4 | branch = 17.0 5 | shallow = true 6 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["ms-python.python"] 3 | } 4 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // Use IntelliSense to learn about possible attributes. 3 | // Hover to view descriptions of existing attributes. 4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 | "version": "0.2.0", 6 | "configurations": [ 7 | { 8 | "name": "Odoo", 9 | "type": "debugpy", 10 | "request": "launch", 11 | "program": "${workspaceFolder}/odoo/odoo-bin", 12 | "args": ["--config=${workspaceFolder}/odoo.conf"], 13 | "cwd": "${workspaceRoot}", 14 | "console": "internalConsole" 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Odoo-Codespace 2 | 3 | #### 1. Create Codespace 4 | 5 | ![codespace](https://github.com/mohammedshahil/Odoo-Codespace/assets/33252126/9740cb32-8127-4278-91cb-a639094b89c6) 6 | 7 | #### 2. Install the suggested python extension 8 | 9 | ![codespace2](https://github.com/mohammedshahil/Odoo-Codespace/assets/33252126/8882f620-0361-4f0b-bdec-fb8ac24f256f) 10 | 11 | #### 3. Make the script executable 12 | ``` 13 | chmod +x odoo_codespace.sh 14 | ``` 15 | ##### 4. Execute the script: 16 | ``` 17 | sudo ./odoo_codespace.sh 18 | ``` 19 | ##### 5. Run and open Odoo in Browser 20 | 21 | ![codespace3](https://github.com/mohammedshahil/Odoo-Codespace/assets/33252126/c8abafa8-3912-4e2e-b757-38dfaa1cff0d) 22 | 23 | ![codespace4](https://github.com/mohammedshahil/Odoo-Codespace/assets/33252126/a18f8bf9-86c3-4aca-8520-2cd93d1c5450) 24 | -------------------------------------------------------------------------------- /odoo.conf: -------------------------------------------------------------------------------- 1 | [options] 2 | addons_path = odoo/addons 3 | admin_passwd = admin 4 | db_host = localhost 5 | db_port = 5432 6 | db_user = odoo17 7 | db_password = odoo 8 | http_port = 8069 -------------------------------------------------------------------------------- /odoo_codespace.sh: -------------------------------------------------------------------------------- 1 | # Update and upgrade the system 2 | sudo apt update 3 | sudo apt upgrade -y 4 | 5 | echo -e "\n---- Initializing submodules ----" 6 | git submodule init && git submodule update --depth 1 7 | 8 | echo -e "\n---- Install PostgreSQL Server ----" 9 | sudo apt install postgresql postgresql-server-dev-all -y 10 | 11 | echo -e "\n---- Creating the ODOO PostgreSQL User ----" 12 | sudo /etc/init.d/postgresql start 13 | echo "codespace ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/codespace 14 | sudo su - postgres -c "createuser -s odoo17" 2> /dev/null || true 15 | sudo -u postgres psql -c "ALTER USER odoo17 PASSWORD 'odoo';" 2> /dev/null || true 16 | 17 | echo -e "\n---- Install required dependencies ----" 18 | sudo apt-get install git python3 python3-pip build-essential wget python3-dev python3-venv python3-wheel libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools node-less libjpeg-dev gdebi -y 19 | sudo apt-get install libpq-dev python3-dev libxml2-dev libxslt1-dev libldap2-dev libsasl2-dev libffi-dev python3-psutil python3-polib python3-dateutil python3-decorator python3-lxml python3-reportlab python3-pil python3-passlib python3-werkzeug python3-psycopg2 python3-pypdf2 python3-gevent -y 20 | 21 | #-------------------------------------------------- 22 | # Install Wkhtmltopdf 23 | #-------------------------------------------------- 24 | sudo apt install ./wkhtmltox_0.12.6.1-2.jammy_amd64.deb 25 | 26 | echo -e "\n---- Setup python virtual environment ----" 27 | sudo pip3 install virtualenv 28 | virtualenv odoo-venv 29 | source "odoo-venv/bin/activate" 30 | 31 | echo -e "\n---- Install python packages/requirements ----" 32 | pip install wheel 33 | pip install -r https://github.com/odoo/odoo/raw/17.0/requirements.txt 34 | -------------------------------------------------------------------------------- /wkhtmltox_0.12.6.1-2.jammy_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohammedshahil/Odoo-Codespace/92e81ec324609ed9dae76726b45ba84d24a3bbef/wkhtmltox_0.12.6.1-2.jammy_amd64.deb --------------------------------------------------------------------------------